接口
接口出现的目的:体现封装性,分离契约和实现,区分开甲方(提要求)和乙方(干活)。
接口可以认为是一份合同(契约)。
接口的语法定义:interface 接口名称{ }
1.接口的定义允许多继承。
2.接口无法实例化对象。
3.接口中给出的方法列表默认:
①public 访问限定符修饰的。
②无法使用static修饰。
③是一个抽象方法直接用分号结尾,不用给出方法体。
④接口中不能出现属性,如果出现默认都是被final static修饰。
类实现接口的语法:class 类名[implements 接口]{ }//同时实现多个接口,覆写接口中的所有抽象方法,或者把自己声明成抽象类,实现部 分方法。
final关键字
①修饰变量,不可变量只有一次赋值机会。final int a=10; a=100;//触发编译错误
②final可以修饰类(表示这个类不能被继承)。final class A{ }
③final可以修饰方法(代表这个方法无法被其子类覆盖)
abstract关键字
①修饰类(这个类无法被实例化)abstract classA{}//抽象类 new A();//编译错误
②修饰方法(该方法称为抽象方法,只有方法签名,没有方法实现)
抽象类中可以没有抽象方法,抽象方法一定出现在抽象类中。
多态
1.父类型的引用可以指向子类型的对象(向上转型)
2.编译期间,可以调用的方法列表,以引用类型为准。
3.运行期间,真正执行的普通方法,以实际执行的对象类型为准。
4.运行期间,真正执行的静态方法,以引用类型为准。
为了避免类型转化错误,java提供一个运算符,判断引用背后的真实对象类型(发生在运行期)
instanceof ab instanceof B;返回值为boolean类型。
ab引用指向的对象能否被B类型的引用指向。
向上转型是自然的,不需要强制转化,向下转型是不自然的,需要强制转化,转换的正确性需要开发者自行保证,通过instanceof保证,如果错误,会有运行时异常抛出。
Object是所有类的祖先类。
继承和多态
最新推荐文章于 2022-01-28 14:27:39 发布