抽象类
抽象类规则
1、抽象类只需要在class前 添加 abstract-----public abstract class Haha {}
2 、抽象类不能new对象
3 、抽象类有构造函数 【抽象类能被其他类所继承 子类的构造函数第一句代码 super() 】
4 、抽象类可以有 成员变量 静态变量 普通函数 抽象函数 。并且抽象类也能被其他类继承 也能继承其他类。
5 、抽象函数就是在函数的返回值前面添加 abstract------public abstract void eat();
6 、抽象函数不写,也不能写函数体
7 、抽象函数必须在抽象类中 抽象类中不一定有抽象函数
8 、抽象函数子类必须重写
问题:抽象类中有构造器,但是抽象类不可以被创建对象,已经抽象类了既然不能new对象那为啥还要有个构造器?
抽象类是干嘛使得,当然是用于继承了虽然抽象类不可以创建对象,但是父类中可以有成员变量、那么构造器就可以重载使用这一成员变量,当子类继承父类的时候就可以在子类的构造器中通过使用super(成员变量)进行父类的调用,进而使用到父类的构造方法。不写的话就会调用默认的空参构造器super()。
子类为什么会掉用父类的构造器,是因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。
接口类
规则:
1、接口没有构造器,不可以new接口,new直接报红
2、实现接口后要重写其中所有的方法,不写直接报红
3、不想实现接口的所有方法,可以将自己的实现类声明为abstract类