里氏转换时遇到的问题(虚方法.抽象方法,普通方法)
在父类与子类进行 里氏转换的 时候, 会发现 :
如 父类 c = new 字类();
c.方法;
当这个方法是普通方法时, 那就时调用的父类的方法;
当这个方法是抽象方法/虚方法时,那么就调用的是字类的方法;
为什么呢?
因为常理来讲,肯定是按照编译时调用的左边的,即 父类的方法.
那么为什么虚方法和抽象方法特殊呢? 原因其实也很简单,因为抽象方法和 虚方法是特殊的方法,人家是加了关键字 的(virtrul 和abstrct) 所以 当然也特殊了!!!!!
注:普通方法在抽象父类中 ,在字类中写的时候 加个new 可以隐藏父类!!!
posted on 2022-03-23 22:25 泰坦尼克号上的活龙虾 阅读(25) 评论(0) 收藏 举报