适用场景:当某个父类知道子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。
意义:限制子类的实际随意性;避免无意义的实例化。
abstract 关键字来定义抽象类和声明抽象方法
抽象类
public abstract class FatherClass{
// 代码块
}
抽象类不能被实例化,只能被继承,可以通过向上转型完成对象实例
public abstract class FatherClass { // 父类为抽象类
private String n;
public void FatherMethod(){
}
// 成员属性的getter /setter 方法
}
public class ChildClass1 extends FatherClass {} // 子类继承父类
public class Test { //测试类
public static void main(String[] args){
// FatherClass fatherClass = new FatherClass(); // 报错 不能被实例化
// 向上转型
FatherClass demo = new ChildClass1();
demo.getN(); // 可以通过向上转型后调用父类的某些方法
}
}
抽象方法
父类用来描述和限制子类的成员方法,而该方法的具体实现由它的子类确定。
1.abstract关键字;
2.没有方法体;
3.子类必须重写父类中的该抽象方法;
4.abstract不能和final、static、private一起使用;
5.包含抽象方法的类一定是抽象类,但抽象类不是必须要包含抽象方法。
public abstract void cry(); // 父类中将方法设置为抽象方法
![](https://img.haomeiwen.com/i13311739/3070e1c7584f14a7.png)
![](https://img.haomeiwen.com/i13311739/6a79f27457d04090.png)
网友评论