12.13

面向对象三大特征:封装性、继承性、多态性
extends继承或者implenments实现,是多态性的前提。
小明是一个对象,这个对象即使,也是..一个对象拥有多中形态。这就是对象的多态性
代码当中体现多态性,其实就是一句话:父类引用指向子类对象
格式:父类名称 对象名= new 子类名称();
或者   接口名称 对象名 =  new 实现类名称();
访问成员变量的两种方式:
1.直接通过对象名称访问成员变量 看等号左边是谁,优先用谁.
2.间接通过成员方法来访问成员变量。看该方法属于水,优先用谁,没有则往上找
态中成员方法的使用特点
看new 的是谁,就优先用谁,没有则往上找。
注意:编译看左边,运行看右边
对比一下:成员变量:编译看左边,运行看左边
成员方法:编译看左边,运行看右边
使用多态的好处:无论右边new的时候换成那个子类对象,等号左边调用方法都不会变化。
对象的上下转型:
向上转型:就是多态写法
父类名称  对象名 = new 子类名称();
含义:右侧创建一个子类对象,把它当做父类来看待使用
注意事项:向上转型一定是安全的。是从小范围转向了大范围,但是也有弊端:
对象一旦向上转型为父类,那么久无法调用子类原本特有的内容。
解决方案:用对象的向下转型【还原】
向下转型:格式:  子类名称  对象名 = (子类名称)父类对象;
含义,将弗雷对象还原成为本来的子类对象。
注意事项:必须保证对象本来创建的时候,就是猫,才能向下转型成为猫
如果对象创建的时候本来不是猫,现在非要向下转型成为猫,就会报错
但是不能在猫的时候转换为狗


instanceof 关键字进行类型判断。
如果希望调用子类特有的方法,需要向下转型   䄦才能知道一个父类引用的对象 本来是子类对象

格式  对象  instanceof 类名称
这将会得到一个boolean值结果,也就是判断面的对象能不能当做后面类型的实实例。
 向下转型一定要进行instanceof转换
if()
子类名称  对象名 = (子类名称)父类对象
(子类名称).对象

final关键字代表着最终,不可改变

1.可以用来修饰一个类
public final class 类名称{

}
含义  当前这个类不能有任何子类。
一个类如果是final类,那么所有成员方法都无法进行覆盖重写。

2.可以用来修饰一个方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写:
格式:
修饰符  final  返回值类型 方法名称{参数列表}
注意事项:  对于类和方法来说 ,abstract关键字和final关键字不能同时进行  因为矛盾。

3.可以用来修饰一个局部变量
一旦使用final用来修饰局部变量,那么这个变量就不能进行改变。
在组中final的引用类型变量,期中的地址值不可改变,但是里面的内容可以增加火减少


4.可以用来修饰一个成员变量
对于成员变量来说,如果final关键字修饰,那么这个变量也照样不可以变
1.犹豫成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值李     
低于final成员变量,要么通过直接赋值(就是后面加等号)要么通过构造方法赋值。

四种权限修饰符:
    public >protected>(default)>pricate
同一个类 YES    YES        YES         YES
同一个包YES    YES        YES        NO
不用包子类YES    YES       NO         NO
不通包非子类YES    NO       NO         NO


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值