22.面向对象-多态-密封方法
22.1 知识点
知识回顾
- 密封类
- 用
sealed
修饰的类 - 让类不再能被继承,类似于“结扎”
- 用
密封方法的基本概念
- 用密封关键字
sealed
修饰的重写函数 - 密封方法的作用:让虚方法或者抽象方法之后不能再被重写
- 密封方法的特点:和
override
一起出现
密封方法的实例
class语句块外namespace语句块内
// 抽象动物类
abstract class Animal
{
public string name;
public abstract void Eat();
public virtual void Speak()
{
Console.WriteLine("叫");
}
}
// 人类
class Person : Animal
{
// 密封吃方法,使吃方法不能被重写
public sealed override void Eat()
{
}
public override void Speak()
{
}
}
// 白人类
class WhitePerson : Person
{
// 报错,吃方法被Person类中密封,不能被重写
// public override void Eat()
// {
// base.Eat();
// }
// 密封说方法,使说方法不能被重写
public sealed override void Speak()
{
base.Speak();
}
}
总结
- 密封方法的概念:可以让虚方法和抽象方法不能再被子类重写
- 密封方法的特点:一定是和
override
一起出现
22.2 知识点代码
using System;
namespace Lesson20_多态_密封方法
{
#region 知识回顾
//密封类
//用sealed修饰的类
//让类不再能被继承 “结扎”
#endregion
#region 知识点一 密封方法的基本概念
//用密封关键字sealed 修饰的重写函数
//密封方法的作用:让虚方法或者抽象方法之后不能再被重写
//密封方法的特点:和override一起出现
#endregion
//class语句块外 namespace语句块内
#region 知识点二 密封方法的实例
//抽象动物类
abstract class Animal
{
public string name;
public abstract void Eat();
public virtual void Speak()
{
Console.WriteLine("叫");
}
}
//人类
class Person:Animal
{
//密封吃方法 使吃方法不能被重写
public sealed override void Eat()
{
}
public override void Speak()
{
}
}
//白人类
class WhitePerson:Person
{
//报错 吃方法被Person类中密封 不能被重写
//public override void Eat()
//{
// base.Eat();
//}
//密封说方法 使说方法不能被重写
public sealed override void Speak()
{
base.Speak();
}
}
#endregion
class Program
{
static void Main(string[] args)
{
Console.WriteLine("密封方法");
}
}
//总结
//密封方法的概念:可以让虚方法和抽象方法不能再被子类重写
//密封方法的特点:一定是和override一起出现
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com