中易网

c#中的base关键字

答案:5  悬赏:80  
解决时间 2021-01-16 00:30
  • 提问者网友:你挡着我发光了
  • 2021-01-15 05:31
c#中的base关键字
最佳答案
  • 二级知识专家网友:玩家
  • 2021-01-15 06:52
楼上的已经说的很明白了,现在说些他们的规则:Base 是子类中引用父类
This 是当前类,引用自己 1、尽量少用或者不用base和this。除了避开子类的名称冲突和在一个构造函数中调用其他的构造函数之外,base和this的使用容易引起不必要的结果。
2、在静态成员中使用base和this都是不允许的。原因是,base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象来访问。
3、base是为了实现多态而设计的。
4、使用this或base关键字只能指定一个构造函数,也就是说不可同时将this和base作用在一个构造函数上。
5、简单的来说,base用于在派生类中访问重写的基类成员;而this用于访问本类的成员,当然也包括继承而来公有和保护成员。
6、除了base,访问基类成员的另外一种方式是:显示的类型转换来实现。只是该方法不能为静态方法。 希望我的回答对你有帮助,如果方便请设为满意答案。
全部回答
  • 1楼网友:过活
  • 2021-01-15 11:07
我暂时保留我的看法!
  • 2楼网友:怀裏藏嬌
  • 2021-01-15 10:09
如果有和父类重名的方法那子类如何判断?
  • 3楼网友:想偏头吻你
  • 2021-01-15 08:36
这么说吧 子类继承了父类的成员(你可以认为子类有了父类的成员)你是想说要是子类有成员 和 继承过来的重名么?你可以尝试下 可能会报错或出警告(要求你 隐藏 父类成员) 回到主题 base 允许你调用父类的构造函数其 我一时想不到有啥其他用处了
  • 4楼网友:时间的尘埃
  • 2021-01-15 08:29
如果说你父类里面有一个成员比如int a;那么你子类里面也可以再定义一个int a,这个时候base.a和this.a表示的就不是一个变量了,如果说子类里面没有,那么base.a和this.a表示的都是一个变量。还有就是重写,覆盖和构造函数里面调用父类的这个方法。可以用:base(),还有就是关于形参名和成员变量相同的时候,因为是就近原则,所以直接写变量名字表示的就是形参,如果加了this表示的就是这个类的成员。C#里面的this和base 跟JAVA里面的this和super是一样的。你在定义一个变量的时候有一个this引用,指向自身,还有一个引用base,指向父类。关于你说的那种情况就是我说的第一种,如果子类成员有和父类成员同名的时候,就必须用this和base区分。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息