抽象方法:没有具体方法体的方法,那么此方法就是抽象方法
抽象类:一个类中如果有抽象方法,则该类必须是抽象类;
抽象类特点:
A:必须使用abstract关键字修饰
B:抽象类中不一定有抽象方法,但是包含抽象方法的类必须定义为抽象类
C:抽象类实例化是通过其子类实例化的(多态),本身不能通过new实例化,因为其不是具体的;
抽象类不能通过new实例化,那么构造方法的意义:抽象类的构造方法是用于子类访问父类数据的初始化;
D:抽象类的子类:
1) 如果子类不能重写抽象类的全部抽象方法,那么此子类还是抽象类
2) 如果子类重写了所有的抽象方法,那么此子类是一个具体的类;
抽象类的成员变量、成员方法、构造方法之间的关系:
成员变量:与普通类的成员变量一样
构造方法:用于子类访问父类数据的初始化;
成员方法:既可以是抽象的,也可以是非抽象的
抽象方法:强制要求子类做的事情
非抽象方法:子类继承的事情,提供代码的复用性
abstract和private、final、static不能共存
与private的冲突:
private修饰不能被继承继而不能重写,
abstract修饰的方法是要求必须重写的;
与final的冲突:
与private一样的道理;
与static的无意义:
abstract方法是没有方法体的,
static随着类的加载而加载,加载一个没有方法体的方法,无意义;
一个类如果没有抽象方法可以定义为抽象类吗?意义何在?
可以:作用是不让创建对象
网友评论