Java 抽象类和抽象方法

适用场景:当某个父类知道子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。
意义:限制子类的实际随意性;避免无意义的实例化。

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(); // 父类中将方法设置为抽象方法
abstract修饰的抽象方法不能有方法体.png
子类必须重写父类中的该抽象方法.png

你可能感兴趣的:(Java 抽象类和抽象方法)