c# 基础之继承

2021-02-10  本文已影响0人  wwmin_

继承 (Inheritance) 是面向对象语言中的重要特征之一。
在 C# 语言中仅支持单重继承,主要用于解决代码的重用问题。
为了将继承关系灵活运地用到程序设计中,在 C# 语言中提供了接口来解决多重继承的关系。
在编程中灵活地使用类之间的继承关系能很好地实现类中成员的重用,有利于类的使用。

//C# 继承  base Virual Abstract Sealed 相关
//Object 四个主要方法: Equals/GetHashCode/GetType/ToString

static void Main(string[] args)
{
    TestBase();
}

static void TestBase()
{
    //Person person = new Person();//虚方法不能实例化
    //Console.WriteLine("Person类的Print方法打印内容");
    //person.Print();
    Student student = new Student();
    Console.WriteLine("Student类的Print方法打印内容");
    student.Print();
    Teacher teacher = new Teacher();
    Console.WriteLine("Teacher类的Print方法打印内容");
    teacher.Print();
}

abstract class Person
{
    public Person(string name)
    {
        this.Name = name;
    }
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual void Print()
    {
        Console.WriteLine("编号:" + Id);
        Console.WriteLine("姓名:" + Name);
    }
    public abstract void ShowMyInfo();//在各自子类中实现自己的实现方法
}

class Teacher : Person
{
    public Teacher(string name) : base(name)
    {

    }
    public string Title { get; set; }
    public string WageNo { get; set; }
    public override void Print()
    {
        base.Print();
        Console.WriteLine("职称:" + Title);
        Console.WriteLine("工资号:" + WageNo);
    }
    public sealed override void ShowMyInfo() => (this.Name + ":" + this.WageNo).Dump();
}
sealed class Student : Person
{
    public Student(string name) : base(name)
    {

    }
    public string Major { get; set; }
    public string Grade { get; set; }
    public override void Print()
    {
        base.Print();
        Console.WriteLine("专业:" + Major);
        Console.WriteLine("年级:" + Grade);
    }
    public override void ShowMyInfo() => (this.Name + "-" + this.Major).Dump();
}

此示例中实现了对类的继承各种方式的使用.

本文作者:wwmin
微信公众号: DotNet技术说
本文链接:https://www.jianshu.com/p/85cb352b4ca5
关于博主:评论和私信会在第一时间回复。或者[直接私信]我。
版权声明:转载请注明出处!
声援博主:如果您觉得文章对您有帮助,关注点赞, 您的鼓励是博主的最大动力!

上一篇下一篇

猜你喜欢

热点阅读