022-抽象类与抽象方法
声明:我的所有文章,都是对网上教学视频的整理,包括狂神说、尚硅谷、黑马程序员等等,用来作为参考资料,无任何商业使用,请广大网友参考,不喜勿喷,谢谢。(注意,由于网站的原因,有些代码字符可能会出现问题,建议大家阅读代码时,最好和下面的图片对应来看) 一、抽象类的引入 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。 二、抽象类与抽象方法的定义 1、用abstract关键字来修饰一个类,这个类叫做抽象类 2、用abstract来修饰一个方法,该方法叫做抽象方法,该方法只有方法的声明,没有方法的实现,以分号结束,如:public abstract void talk(); 3、含有抽象方法的类必须被声明为抽象类 4、抽象类不能被实例化,抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体;若没有重写全部的抽象方法,仍为抽象类。 5、不能用abstract修饰变量、代码块、构造器 6、不能用abstract修饰私有方法、静态方法、final的方法、final的类 三、示例 四、抽象类应用 抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类。 例如:在一个航运公司系统中