请问在子类中使用base和直接new的父类对象有什么区别???另外base的本质是什么,是父类的实例对象吗?
new对象后,对象的this就是new时使用的类。
base是目标类型的基类的意思。
在类的继承结构中,使用this始终都是表示对象创建时的类能直接使用的属性、方法等的限定。
而base是在不同的继承体系中指向基类的类结构。
当我们使用base来限定方法或属性之类的时候,也就意味着调用通过基类能直接使用this时的方法和属性,从而忽略当前定义类里定义的方法、属性等。
一般,使用base的时候是在派生类中对基类的方法进行重载的时候。当一个方法、属性被重载后,重载类里,通过this是只能调用到被重载后的的方法或属性,而有时,我们希望使用基类所具备的功能,就需要通过base来限定属性或方法。
base 关键字用于从派生类中访问基类的成员:
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
基本语法问题.好好买本教科书从头看到尾吧.
base和new怎么可能一样,
base 是相对this 而言的
至于new 就是一个新的 和this 一点关系没有
this代表当前对象,base代表父类对象。new是用于创建对象
base:可以用base在子类中来调用父类中的函数。在普通情况下,函数从父类中继承到了子类,在子类中就可以直接用函数名访问,也可以用base,但是没必要用base;但是那些父类中继承过来却被子类隐藏或者覆盖的方法,就必须用base才能访问了;父类中的private被继承之后,不论是否被覆盖或者隐藏,都无法以任何的形式在子类中被访问,base也不可以。
new:如果在子类中出现了一个与父类同名同参的函数,子类中的该函数没有用任何的修饰符,那么就是默认隐藏了父类的该函数,此时会有一个警告;如果在子类中加上new的话,警告就会消失。隐藏表示父类的函数在子类中还是存在的,只是隐藏了;如果用父类的引用指向子类的对象,然后调用该函数,调用的是父类的函数,这就是隐藏的特征。New只能隐藏new、overwrite、普通的函数。