抽象类

abstract  抽象类

//抽象类
public abstract class Student {

    //抽象方法,只有方法的名字,没有方法的实现!
    public abstract void eat();
    /*
    *1. 不能new这个抽象类,只能靠子类去实现它
    *2. 抽象类中可以写普通的方法
    *3. 抽象方法必须在抽象类中
    * */
}

总结:

  • 抽象类不能被实例化

  • 如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现

  • 抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的

  • 非抽象类继承了抽象类,在调用其父类方法时,需要重写

public class Teacher extends Student {

    @Override
    public void eat() {
        System.out.println("抽象");
    }
}

 疑问:为什么抽象类不能实例化对象?

因为抽象类是存在抽象方法的,如果能让抽象类创建对象的话,那么使用抽象类的对象调用抽象方法是没有任何意义的。

 

 

 

 

posted @ 2020-09-26 14:32  IanW  阅读(134)  评论(0编辑  收藏  举报