c# 衍生类A继承自base类,A如何访问base的方法method1()

发布时间:2024-05-16 13:30 发布:上海旅游网

问题描述:

如果method1()是int类型

PUBLIC A:BASE
{
int cd;
cd=mehtod1():
}

这样可以吗???就是直接使用???

如果本地从写了这个方法,这样调用的是本地的还是基类的??

如果是多重继承,如何判定是使用哪个类的方法???
汽车衍生出公共汽车

公共汽车衍生了福特牌公共汽车

每个都重写了run方法

如果想在福特中调用汽车的run方法,如何?

我知道在运行时,可以把福特汽车转换为汽车,类型,这个时候就是访问的汽车的run方法

可是定义的时候怎么指定访问层次呢??

问题解答:

这样可以吗???就是直接使用???-可以的,不过也可以在方法前面加个base.,这样比较清晰

如果本地从写了这个方法,这样调用的是本地的还是基类的??-本地的

如果是多重继承,如何判定是使用哪个类的方法???-把复杂问题简单化,多重继承可以看做多个单层继承,即本地没有重写或覆盖,就是本地的,否则就是基类的,基类再判断,即本地没有重写或覆盖,就是本地的……

如果想在福特中调用汽车的run方法,如何?-因为你已经在公共汽车中重写(即隐藏)了汽车的run方法,所以在福特中是访问不到汽车的run方法了

我知道在运行时,可以把福特汽车转换为汽车,类型,这个时候就是访问的汽车的run方法-定义为汽车(或后来转换为汽车类型),当然可以访问汽车地方法,因为这时已经跟福特无关了,即丢失了福特汽车的所有特性。

可是定义的时候怎么指定访问层次呢??-不太明白你说的指定访问层次,定义为汽车就是汽车,公共汽车就是公共汽车,在这三个类的外部调用的时候已经跟这三个类(类型)继承的层次无关了。
PS:你是不是设计的思路上想不通?你定义为公共汽车的类,就要收集所有公共汽车的特性,不能将某些公共汽车的特性放到公共汽车类里面,那些特殊公共汽车所特有的特性可以细分公共汽车子类或者在具体型号的公共汽车类里面定义。

如果本地继承了基类的方法method1

则使用的是本地,要访问基类的,可以用base.method1();

//如果想在福特中调用汽车的run方法
一般来说,不会这样去调需要继承的方法,你可以定义一个不继承的方法,比如
carrun方法,在福特中直接调用carrun方法

base.Method1();注意method1的访问权限,不然是访问不到的

热点新闻