C#中base关键字的详解
https://blog.csdn.net/qq_45096273/article/details/106605959
一.base的含义:
base关键字:是用来调用基类的有参数的构造函数(构造函数是一个构建对象的函数,在建立对象时就初始化对象,为对象成员变量赋予一个初始值,好比person函数里面若是没有传name和age进去,那么默认的name的初始值就是空,age就是0。它老是与new运算符一块儿使用在建立对象语句中,构造函数最主要的特色在于它方便建立多个对象的实例),因为子类不能直接继承父类的构造函数;
(父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承。有些编程语言支持多重继承,即一个子类别可以同时有多个父类别,比如C++编程语言;而在有些编程语言中,一个子类别只能继承自一个父类别,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果)
二.base的作用:
base可以完成创建派生类实例时调用其基类构造函数或者调用基类上已被其他方法重写的方法。
base 关键字用于从派生类中访问基类的成员的构造函数的形参:
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数。
三.base的注意事项:
基类访问只能在构造函数、实例方法或实例属性访问器中进行;
如果基类/父类中没有形参时,会自己进行调用默认的base关键字;
在运用base关键字时,必须和子类中声明的名称一样;
四.应用举例:
基类/父类中:
class Animial
{
private string Name;
public Animial(string name)
{
this.Name = name;
Console.WriteLine("我的名字叫:{0}",name);
}
public int age;
public string love;
public void Fisft()
{
Console.WriteLine("吃饭不是为了吃,关键是气氛搞起来!");
}
public void Second()
{
Console.WriteLine("经常被自己的聪明所秀到!");
}
}
子类/派生类:
class Dog:Animial
{
public Dog (string Name): base(Name)
{
}
}
调用类方法进行打印:
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog("哈士奇");
dog.age = 02;
dog.love = "拆家,搞事情,瞪眼睛";
Console.WriteLine("我今年{0}岁啦,我的爱好是{1}", dog.age, dog.love);
Console.ReadLine();
dog.Fisft();
Console.ReadLine();
dog.Second();
Console.ReadLine();
}
}
运行结果;