Day5 多态.final关键字.权限修饰符

1.多态:1>一个对象的多个形态;// 父类名 对象名 = new 子类名();/ 接口名 对象名 = new 实现类名();

              2>访问成员变量的方法:<1>直接通过对象名访问成员变量:(左看变量,右看方法)看等号左边是谁,优先用谁,没有就向上找;

                                                      <2>间接通过成员方法访问:看该方法属于谁,优先用谁,没有再向上找;(编译看左,运行看右)

 2.对象的转型:1>向上转型:父类名 对象名 = new 子类名(); // 把创建的子类当父类看;(向上转型一定是安全的,因为是从小范围到大范围)

                                                PS:对象一旦向上转型,就不能使用原本的子类方法;

                          2>向下转型:子类名 对象名 = (子类名)父类对象;// 将父类对象还原成本来的子类对象,原来是什么只能还原成什么,

                                                否则会出现ClassCastException异常; 

                                                 /* Animal animal = new Cat();

                                                    Cat cat = (Cat) animal; */ 

                         3>如何知道一个父类引用的对象,本来是什么子类:对象 instanceof 类名

                                                                                                             /* Animal animal new Dog();

                                                                                                                if (annimal instanceof Dog){

                                                                                                                Dog dog = (Dog) animal; } */

3.例题:笔记本USB接口案例:

     

 4.final关键字:1>修饰一个类:当前类的所有成员方法不能进行覆盖重写,且这个类不能有子类,可以有父类;

                                                  //public final class Myclass{ }

                         2>修饰一个成员方法:该方法不能被覆盖重写,对于类和方法来说,abstract(必须背覆盖重写)和

                                                             final(不行被覆盖重写)因为矛盾,不能同时使用;

                                                             //修饰符 final 返回值类型 方法名(参数列表){方法体} 

                         3>修饰一个局部变量:final修饰局部变量,这个变量的赋值就不能被更改;// final int num = 2;

                                                            基本变量的数据值不变,引用变量的地址值不能改变;

                         4>修饰一个成员变量:final修饰后,变量不可变,且需要手动赋值;直接赋值或者通过构造方法赋值;

                                                             要保证类中所有重载的构造方法,最终都会对final的成员变量进行赋值。

 5.权限修饰符:                                同一类                同一包                不同包子类                不同包非子类

                          1>public:                 ✅                        ✅                           ✅                                 ✅

                          2>protected:            ✅                       ✅                            ✅                                ❌

                          3>(default):              ✅                       ✅                            ❌                                ❌

                          4>private:                ✅                        ❌                           ❌                                 ❌

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值