首页 新闻 会员 周边 捐助

请问在子类中使用base和直接new的父类对象有什么区别???

0
悬赏园豆:10 [已解决问题] 解决于 2014-08-07 14:43

请问在子类中使用base和直接new的父类对象有什么区别???另外base的本质是什么,是父类的实例对象吗?

i迷倪的主页 i迷倪 | 初学一级 | 园豆:185
提问于:2014-08-07 12:31
< >
分享
最佳答案
0

new对象后,对象的this就是new时使用的类。

base是目标类型的基类的意思。

在类的继承结构中,使用this始终都是表示对象创建时的类能直接使用的属性、方法等的限定。

而base是在不同的继承体系中指向基类的类结构。

当我们使用base来限定方法或属性之类的时候,也就意味着调用通过基类能直接使用this时的方法和属性,从而忽略当前定义类里定义的方法、属性等。

一般,使用base的时候是在派生类中对基类的方法进行重载的时候。当一个方法、属性被重载后,重载类里,通过this是只能调用到被重载后的的方法或属性,而有时,我们希望使用基类所具备的功能,就需要通过base来限定属性或方法。

收获园豆:5
519740105 | 大侠五级 |园豆:5810 | 2014-08-07 13:54
其他回答(5)
0

base 关键字用于从派生类中访问基类的成员:

  • 调用基类上已被其他方法重写的方法。

  • 指定创建派生类实例时应调用的基类构造函数。

基类访问只能在构造函数、实例方法或实例属性访问器中进行。

收获园豆:1
Halower | 园豆:1723 (小虾三级) | 2014-08-07 12:48
0

基本语法问题.好好买本教科书从头看到尾吧.

base和new怎么可能一样,

收获园豆:1
吴瑞祥 | 园豆:29449 (高人七级) | 2014-08-07 12:52
0

base 是相对this 而言的

至于new 就是一个新的 和this 一点关系没有

收获园豆:1
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2014-08-07 13:08
0

this代表当前对象,base代表父类对象。new是用于创建对象

收获园豆:1
乐享程序员 | 园豆:930 (小虾三级) | 2014-08-07 13:11
0

base:可以用base在子类中来调用父类中的函数。在普通情况下,函数从父类中继承到了子类,在子类中就可以直接用函数名访问,也可以用base,但是没必要用base;但是那些父类中继承过来却被子类隐藏或者覆盖的方法,就必须用base才能访问了;父类中的private被继承之后,不论是否被覆盖或者隐藏,都无法以任何的形式在子类中被访问,base也不可以。

new:如果在子类中出现了一个与父类同名同参的函数,子类中的该函数没有用任何的修饰符,那么就是默认隐藏了父类的该函数,此时会有一个警告;如果在子类中加上new的话,警告就会消失。隐藏表示父类的函数在子类中还是存在的,只是隐藏了;如果用父类的引用指向子类的对象,然后调用该函数,调用的是父类的函数,这就是隐藏的特征。New只能隐藏new、overwrite、普通的函数。

收获园豆:1
眄眄 | 园豆:211 (菜鸟二级) | 2014-08-07 14:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册