向mars老师致敬!!学习的动力和源泉
抽象函数
抽象函数:只有函数定义,没有函数体的函数,没有大括号和里面的内容
例如:abstract void eat();
1、如果一个类中包含抽象函数,那么这个类必须被声明为抽象类
2、 抽象类不能生成对象,因为生成的对象调用了抽象类中的抽象函数,那就出问题了,因为抽象函数没有函数体
3、如果一个类中没有抽象函数,那么这个类也可以被声明为抽象类。(这样可以让别人无法生成子类对象,带abstract的类 又叫基类)
抽象类天生用来被继承的,抽象类不能生成对象,但它的子类是可以生成对象的。
抽象类的子类 必须覆写父类的抽象类,否则这个子类又变成了抽象类(o(╯□╰)o)
抽象类是可以有构造函数的,子类可以进行调用,super()。
生成子类的时候,一定是先调用父类的构造函数的,除非覆写了父类的构造函数
为什么用抽象类
程序设计逻辑问题 这样就不会忘记覆写抽象类 达到语义上的正确性