包含抽象方法的类,就一定是抽象类。
但不表示抽象类必须包含抽象方法。
如果子类继承抽象类,就必须重写所有抽象方法,如果不想全部重写,那就把子类定义成抽象类。
写做:
(public) abstract class Demo{}
不能实例化,就是说new不了。它是代表一种类型,而创建对象是具体的。
但有自己的构造方法;(可能因为毕竟是继承吧,继承的话就需要父类属性跟实例方法,所以它需要给子类提供构造方法,但它本身不能实例化。)
可以包含普通方法(非抽象方法),也就是一般带方法体的方法;
不能用final修饰,因为抽象类需要通过继承来实现抽象方法。
没有方法实现,不能直接调用;
不能用private修饰,因为子类要实现它;
不能用static修饰,因为static会分配内存,但它没有方法体呀,这样做没有意义。
this代表当前发起调用的类。
4、super子类不能调用抽象父类的抽象方法。
二、好处1、不能被实例化,通过方法的覆盖实现多态,即运行时绑定;
2、事物共性提出来,子类通过继承实现,代码易维护、扩展。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)