多态

一:Object(万类之祖)
toString()的用法:   不用: System.out.println(对象);------------------------打出类的完全限定名+十六进制地址;
                                 用: System.out.println(对象);------------------------打出Override的方法
equals()的用法:    == 比较类的地址
                               对象equals(对象)比较类的属性


二:多态(对同一个指令(调用同一个方法(引用类型同对象不同))不同对象给予不同反应(不同对象的方法的实现))
       父类引用存储了子类地址
       父类引用指向子类对象
多态实现的前提
    1:必须用继承关系
    2:子类方法Override父类方法(调用同一个方法不同子类实现不同 )
    3父类引用指向子类对象(多态本质)new对象的时候前面写父类就是表示地址用父类去引用
多态的实现:
          使用父类作为方法形式参数的多态
          使用父类作为定义方法返回值的多态(?)
******方法返回值类似了继承了已经就存在多态
instanceof(判断对象本身是哪个类)
     pet instanceof Dog(pet对象是不是Dog)
PS:成员变量:优先用父类,没有向上找
       *******************编译看左边,运行看左边
       成员方法:new的谁就先用谁,在先上找
       ***************编译看左边,运行看右边  Fu obj=new Zi;
                                                               obj.methodzi();//编译会报错 左边父类methodzi()这个方法;
       *************所以多态的实现,对象调用的方法必须是父类和子类都有的,编译看父类有没有这个方法,运行却运行子类的
                    一般我们定义父类同名的方法变为abstract在子类中实现(其实运行方法和继承差不多也是优先运行子类的)

三:向上向下类的转型(引用对象地址的改变)
 向上:Pet dog=new Dog();————————————自动装换
 向下:Dog dog=(Dog)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值