多态
发生条件:
类之间有继承关系、重写父类方法、父类引用指向子类对象
抽象类
特性:
- 含有抽象方法的累必须声明为抽象类,抽象类必须被继承,抽象方法必须被实现
- 抽象类中不是所有的方法都是抽象方法,可以在抽象类中声明并实现方法。
- 抽象类的子类必须实现父类的所有抽象方法后才能实例化,否则这个子类也能成为抽象类
- 抽象类不能实例化。
抽象类语句
“[访问修饰符]abstract class<类名>{}
”
抽象方法定义、
“abstract <返回类型><抽象方法名>(形参);--
”
接口 关键字(interface
)
- 分为接口声明和接口体
- 接口体中包含常量定义和方法定义两部分。接口体只进行方法的声明,不能提供方法的实现,
即没有方法体 - 接口中所有的变量都是"
public static final
“,所有方法都是”public abstract
"无论是否有修饰符。
接口的格式
“[public] interface <接口名>[extends<一系列接口名>]{常量或抽象方法的集合}]
”
接口特性:
1 常量默认只能为"public static final
"
2 接口中只能定义"public abstract
“方法
3 接口可以继承其他接口,并添加属性和抽象方法
4 不能使用native static final private protected synchronized等修饰符
5 接口允许多继承
6 不允许定义接口的实例,但允许定义接口类型的引用变量,该变量引用实现了该接口的类的实例。
7 一个类能同时继承多个接口,并且重写方法为必须声明为”public
"
接口的使用:
- 关键字("
implements
");一个类可以通过使用"implements
"使用接口 - 如果一个类使用了某个接口,那么这个类必须实现接口的所有方法
- Java提供的接口都在相应的包中,通过引入包使用相应的接口也可以自定义接口,一个Java源文件就是由类和接口产生的
- 接口声明时,在关键字"
interface
“上”public
"这样的接口可以被任何一个类使用 - 如果不加"
public
"则为默认的只能被同一包中使用 - 父类使用了接口,子类也就是用了接口
- 接口也可以被继承,可以通过extends用一个接口继承另一个接口,如果接口是public,继承所有的方法与常量