抽象类:
用abstract修饰,抽象类的子类权限修饰符必须大于父类的权限修饰符
抽象类的特点:
1、抽象类是被abstract修饰的类,类中可以有抽象方法
2、抽象类有一般函数和构造函数,但是构造函数不能用于抽象类的实例化
3、抽象类可以被抽象类继承,也可以被一般类继承,如果被一般类继承,必须重写抽象类中所有的抽象方法。
补充:
1、抽象类中可以有抽象方法,抽象方法必须放在抽象类中
2、继承会使类与类之间的耦合度过高,不符合开发原则
3、抽象类中的函数没有方法体,由子类去重写该方法,减少代码的书写
4、被abstract修饰的函数叫抽象函数,该方法没有方法体
5、被abstract修饰的类叫抽象类,该类中可以有抽象方法
接口:
接口真正解决了继承耦合度过高的问题
接口是一种引用型的格式,被interface定义
接口中所有的方法默认是public abstract
接口的特点:
1、接口是被interface定义的,在接口中只能有抽象方法
2、接口中不能定义属性,可以定义常量
3、接口中没有构造方法,不能对接口进行实例化
4、接口可以被接口多继承
5、一般类可以继承一个类,在实现多个接口,一般类需要重写接口中的所有抽象方法
补充:
1、接口是对外暴露的原则
2、接口是程序的功能扩展
3、接口的出现降低耦合度
4、接口可以用来多实现