里氏转换时遇到的问题(虚方法.抽象方法,普通方法)

在父类与子类进行  里氏转换的 时候,  会发现 :

 

如   父类  c = new 字类();

c.方法;

当这个方法是普通方法时, 那就时调用的父类的方法;

当这个方法是抽象方法/虚方法时,那么就调用的是字类的方法;

为什么呢?

因为常理来讲,肯定是按照编译时调用的左边的,即 父类的方法.

那么为什么虚方法和抽象方法特殊呢?  原因其实也很简单,因为抽象方法和 虚方法是特殊的方法,人家是加了关键字 的(virtrul 和abstrct)  所以 当然也特殊了!!!!!

 

 

注:普通方法在抽象父类中 ,在字类中写的时候 加个new 可以隐藏父类!!! 

posted on 2022-03-23 22:25  泰坦尼克号上的活龙虾  阅读(25)  评论(0)    收藏  举报

导航