一:抽象类注意事项
-
抽象类不能创建对象,若强行创建,编译无法通过而报错。只能创其非抽象类的子类的对象。
-
抽象类一定有构造器,作用是为了其子类创对象时,初始化父类属性使用的。
-
抽象类中未必有抽象方法,但是有抽象方法的类一定是抽象类。
-
抽象类的子类,必须重写父类中所有的抽象方法,否则将该子类定义为抽象类。
-
抽象类存在的意义是为了让其子类继承,体现了类似c++里面模板的思想。
问题:既然抽象类不能用来创建对象,为什么提供了构造器呢?
第一:抽象类也是个类,只要是类一定存在构造器,而且抽象类必须具备构造器,给其子类创造对象调用父类构造器使用的。
第二:抽象方法是没有方法体的,创建对象不能被执行,因此不能创建对象。
接口:
作用:
1. 约束
2. 为了定义一些方法 让不同的人去实现 比如10个人实现不同的功能去完成一个大型项目。
3. 方法都是public abstract的。
4. 属性都是常量 用public static final修饰。
5. 接口不能被实例,因为接口中没有构造方法 这一点和抽象类不一样 抽象类有构造方法的。
6. implements可以实现“多继承”,也就是多个接口。
7. 接口中的方法如果要实现,必须要被重写。