继承和多态

接口
接口出现的目的:体现封装性,分离契约和实现,区分开甲方(提要求)和乙方(干活)。
接口可以认为是一份合同(契约)。
接口的语法定义: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是所有类的祖先类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值