一、抽象类
为什么使用抽象类
面向对象中,对象都是通过类来描绘的,反过来,并不是所有的类都是用来描绘对象的,这样的类就是抽象类。
概述
用abstract关键字修饰一个类就是抽象类. 可以看成是对普通类的进一步抽象
抽象方法
没有方法体的方法
特点
1.可以定义具体方法
2.可以没有抽象方法
3.有抽象方法的一定是抽象类
4.抽象类不能实例化,只能通过子类实例化
5.虽然不能实例化,但是可以有构造方法,主要用于数据初始化
6.抽象类的子类必须重写抽象父类中的所有抽象方法
接口
为什么用接口?
解决继承单继承的缺点
概述
1.接口提供一种公共的规范,是为了在符合规范的前提下,达到通用的目的
2.java中的接口使用interface定义,是一种对行为的抽象
特点
1.接口中主要使用抽象方法,不能有普通方法
2.子类实现接口使用implements,而非extends
3.接口不能直接实例化,可以通过其子类实例化
4.子类如果实现接口,必须实现接口中所有方法
5.子类可以实现多个接口
6.接口中的成员变量都被final以及public以及static隐式修饰,即都为常量
7.接口中可以定义默认方法(java8新增)、静态方法(java8)、私有方法(java9新增)
8.接口中没有构造方法
类和接口的关系
类和类
如果符合继承的使用原则,则存在继承关系
类和接口
用implements
接口和接口
用extends,多继承