再回首Java第十一天
抽象方法和抽象类
抽象方法抽象类必须使用abstract修饰,有抽象方法的类必须被定义成抽象类,抽象类里可以没有抽象方法
抽象方法和抽象类的规则如下:
- 抽象方法必须使用abstract修饰,抽象类也必须使用abstract来修饰,抽象方法不能有方法体
- 抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器来创建抽象类的实例,即使抽象类里不包含抽象方法,这个抽象类也不能被实例化
- 抽象类里可以包含属性、方法(普通方法和抽象方法)、初始化块,构造器、内部类和枚举类六种成分,抽象类构造器不用于创建类的实例,主要给子类调用
- 含有抽象方法的类(包括直接定义有抽象方法,继承父类的抽象方法并没有完全实现,实现接口的方法没有完全实现)必须定义成抽象类。
当abstract修饰类是表示这个类只能被继承,当abstract修饰方法是表示方法必须由子类提供实现,而final修饰的类不能被继承,final修饰的方法不能被重写,所以永远不要同时使用abstract和final