抽象 abstract
- 抽象类
为什么要修饰类? 只体现父类的特点,不让外界new父类对象
抽象类? 使用abstract修饰的类,里面可以有属性、构造方法、普通方法、静态方法、抽象方法
特点:
1. 抽象类不能创建对象 1. 抽象类中可以放构造、静态、普通方法,但是抽象类中还可以放抽象方法 2. 如果里面定义了抽象的方法,则所有的子类必须实现抽象方法
- 抽象方法
格式:访问修饰符 abstract 返回值 方法名([参数]);
特点:
1. 使用abstract修饰
2. 没有方法体
3. .只能存在于抽象类中
场景:要求所有的子类都必须重写的方法,在父类中定义成抽象方法
接口 interface
- 接口产生的原因?
- 提供了一种专门制定功能
- 提供了多重继承,弥补了单继承的不足
- 如何定义接口?
格式:访问修饰符 interface 接口名{ 常量 抽象方法 }
- 接口的默认修饰符?
接口的常量:public static final 这三个是默认的修饰符
抽象方法:public abstract
- 接口能否继承?
不能继承类,但是可以继承接口,但是不能实现接口
- 接口定义后如何使用?
implements后面如果有多个接口使用“,”分割
- 如果既有继承又有接口的实现:
必须先继承后接口
Public class 类名 extends 父类 implements 接口1,接口2……(){
//该类中拥有了父类所有接口的特点
}
总结:
抽象类和接口的区别:
相同:
1.都允许定义抽象方法
2.都是为子类提供功能
3.都不能创建对象
不相同:
1.抽象类中允许存在其他的方法,但是接口中只能存在抽象方法
2.抽象类是用来继承的使用extends,接口是用来实现的implements
3.抽象类的继承必须是单继承,但是接口就可以实现多个接口
4.抽象类中可以定义构造方法,但接口中欧不能定义
5.抽象类中可以有成员变量(属性),接口中只能定义常量