java多态理解笔记1

 

多态初出现:

对于初学者来说,最开始接触到的java的多态代码可能是长这样的:

public class parent{

public void method1( parameter list ){

}

}

public class child extends parent{

//override

public void method1( parameter list ){

}

}

// test class

public class testDrive{

public static void main(String [] args){

parent p=new child();

p.method1();

}

}

多态机制的小结:

1. 子类继承父类

2.子类override父类的public函数

3.浅显理解java中的动态绑定。

tip:多态是针对函数才有意义,对instance variable讲多态没有意义;同时有static, private, final关键字的函数也是不适用多态的,因为它们的机制是静态绑定。

上述这个继承的例子,实际运行起来大概是这样的:

1. JVM看到p refer to的对象类型是child, 于是查找class child中所有的method;

2. 找到名字是method1,并且参数类型一致的那个函数,好啦就决定调用这个函数。

当然override之后的函数我个人认为优先级是高于父类的,就像书中所说的,the lowest wins! 所以最后会调用子类中重写后的method1.

tip: 定义为子类类型的reference variable是不能指向父类类型对象,这一点我还没想明白,先记住好啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值