C# 类的继承的
C# 关于类的继承的总结
1、父类和子类(基类和派生类)
在类的继承中,被继承的类叫做基类(与派生类并提)或父类(与子类并提),继承的类叫做派生类或子类。子类继承父类的属性、方法等,但子类没有继承父类的私有(private)字段。
public class Person
{
public string _name;
private int _age;
public void SayHello()
{
Console.WriteLine("大家好,我是{0},我是人类", _name);
}
}
public class Student:Person
{
}
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu._name = "李明";
stu.SayHello();//输出:大家好,我是李明,我是人类
Console.ReadKey();
}
}
子类对象无法访问父类私有字段:
2、继承的特性
-
单根性
子类只能继承一个父类,但一个父类可以有多个子类。所以C#不支持多重继承
-
传递性
继承是可以传递的。子类不仅继承父类中声明的成员,也继承父类的父类中的声明成员。
public class ancestor { public char _gender; } public class parent:ancestor { public string _name; } public class child:parent { } class Program { static void Main(string[] args) { child ch = new child(); ch._name = "李华"; ch._gender = '女'; } }
-
自动隐藏性
如果子类与父类存在相同的函数名,父类会自动隐藏该函数。因此子类调用与父类相同函数名的函数时,调用的是子类或者说是自己的函数。
public class Person { public void SayHello() { Console.WriteLine("大家好,我是人类"); } } public class Student:Person { //如果有意隐藏,请使用关键字 new public new void SayHello() { Console.WriteLine("大家好,我是学生类"); } } class Program { static void Main(string[] args) { Student stu = new Student(); stu.SayHello();//输出:大家好,我是学生类 Console.ReadKey(); } }
new的两个作用: 1、创建类的对象 2、隐藏从父类继承的同名成员,隐藏后子类调用不到父类成员
3、调用父类的构造函数
子类没有继承父类的构造函数,但子类默认会调用父类无参数的构造函数。调用父类无参构造函数是为了创建父类对象,让子类可以使用父类中的成员。
如果在父类写一个有参构造函数,子类无法调用无参数构造函数,会报错。
解决办法:
-
在父类重新写一个无参数的构造函数
public class Person { public string _name; public int _age; public Person() { } public Person(string name, int age) { _name = name; _age = age; } } public class Student:Person { } class Program { static void Main(string[] args) { Student stu = new Student(); stu._name = "李华"; stu._age = 18; Console.ReadKey(); } }
-
在子类中使用关键字【base】显示调用父类构造函数
public class Person { public string _name; public int _age; public Person(string name, int age) { _name = name; _age = age; } } public class Student:Person { public Student(string name, int age):base(name, age) { } } class Program { static void Main(string[] args) { Student stu = new Student("李华", 18); Console.ReadKey(); } }
因为作者精力有限,文章中难免出现一些错漏,敬请广大专家和网友批评、指正。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjaghc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01