C#继承和多态——基本讲解
Posted 源代码讲解H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#继承和多态——基本讲解相关的知识,希望对你有一定的参考价值。
一、继承
1、语法:
//派生类,Student里面什么也没写,但是他继承了People
class Student:People
{
public void NengLi()
{
JiShu();
}
}
2、使用说明
1)子类可以继承父类的所有公有的属性和方法,还有受保护的字段和方法,私有的字段和方法不会被继承
2)实例化子类时会自动调用父类的(无参)构造方法
3)构造方法不能被继承,但是可以通过base关键字进行使用
4)用sealed修饰的类不能被继承
二、多态
1、多态的表现形式
1)重载
在一个类中,方法名相同,参数不同(参数类型不同或个数不同)
2)重写
在子类中,对父类的方法进行修改或重写
父类对象可以指向子类的实例,并且调用子类重写的方法
重写的步骤:
(1)在父类中,把需要重写的方法定义成虚方法(使用virtual关键字)
(2)在子类中,对父类的需要重写的方法进行重写(使用override关键字)
以下是多态的基本演示多看注释!如果觉得不错请点一个赞关注一下,以后不迷路!
class People
{
public string name;
//在父类中使用virtual关键字把方法定义为虚方法
public virtual void Say()
{
Console.WriteLine("大家好,我叫{0},是一名医生",name);
}
}
class Student:People
{
//在子类中重写父类的虚方法(使用override关键字)
public override void Say()
{
Console.WriteLine("大家好,我叫{0},是一名学生", name);
}
}
class Teacher:People
{
//在子类中重写父类的虚方法(使用override关键字)
public override void Say()
{
Console.WriteLine("大家好,我叫{0},是一名老师", name);
}
}
class Program
{
static void Main(string[] args)
{
Student stu = new Student();
stu.name = "王五";
stu.Say();
Teacher t = new Teacher();
t.name = "李四";
t.Say();
People p = new People();
p.name = "张三";
p.Say();
Console.WriteLine("********************************");
Speak(p);
Speak(stu);
Speak(t);
}
//把父类对象作为方法的参数
static void Speak(People p)
{
p.Say();//调用Say说话的方法
}
}
以上是关于C#继承和多态——基本讲解的主要内容,如果未能解决你的问题,请参考以下文章
.NET Core CSharp初级篇 1-6 类的多态与继承