一. 接口(可以认为是一种特别的抽象类)
接口声明关键字:interface 实现接口的关键字:implements
- 作用:代表一种能力,主要是解决java中单继承的局限性
- 特性:
a.接口不可以实例化对象,但是可以进行向上转型/向下转型
b.接口当中所有的属性都是静态常量,在定义的时候必须赋值
c.接口中所有的方法都是抽象方法,可以不加abstract修饰
d.接口当中属性和方法的权限只有public
e.类实现接口以后,必须强制重写接口所有的抽象方法,除非这个类是抽象类
f.继承要求是单继承,但是接口可以多实现
g.接口之间可以继承,并且是多继承
h.接口中不可以定义任何构造函数
二.抽象类
!!!定义抽象类: abstract 实现抽象类: extends)
1.评断标准:在生活当中没有具体存在 概念性的东西
2.特点:
a.使用abstract修饰
b.抽象类不可以实例化对象
c.抽象类可以包含抽象方法和普通方法
三.接口和抽象类的区别点:
1.相同之处:
a.不能实例化对象
b.可以包含抽象方法
c.定义好的抽象方法要求子类强制重写,除非子类是抽象类
2.不同之处:
a.接口的属性只能定义为静态常量,但是抽象类的属性为普通属性
b.接口中只有public一种权限,抽象类有四种权限
c.接口中的抽象方法不用abstract修饰,抽象类必须要有
d.抽象类可以包含普通方法和抽象方法,但是接口只包含抽象方法
e.接口不可以定义构造函数,抽象类可以
f.接口可以进行多继承 多实现 ,抽象类单继承
g.定义关键字不同和实现的关键字不同