A.4.2虚函数 virtual 和多态的实现

ylbtech- .NET-Basic: A.4.2-虚函数 virtual 和多态的实现

A.4.2-虚函数 virtual 和多态的实现;

虚函数(virtual):主要目的就是为了让子类重写,这样的方法可以有方法体
abstract

子类的重写格式 :
override 返回类型 方法名()

1.A,运行效果图返回顶部
A.1,Person.cs
View Code
using System;

namespace 继承_虚函数
{
    class Person
    {

        int id;
        string name;
        string sex;



        public Person()
        {
            this.id = 1000;
            this.name = "x'y";
            this.sex = "";
        }

        public Person(int id, string name, string sex)
        {
            this.id = id;
            this.name = name;
            this.sex = sex;
        }

        //函数加virtual修饰,希望子类重写该虚函数
        public virtual void Show()
        {
            Console.WriteLine("编号:{0}",id);
            Console.WriteLine("姓名:{0}",name);
            Console.WriteLine("性别:{0}",sex);
        }
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public string Sex
        {
            get { return sex; }
            set { sex = value; }
        }

    }
}
A.2,Student.cs
View Code
using System;

namespace 继承_虚函数
{
    class Student:Person
    {

        string grade;

        public Student()
            : base()
        {
            this.grade = "1期";
        }

        public Student(int id, string name, string sex, string grade)
            : base(id, name, sex)
        {
            this.grade = grade;
        }

        //override:覆盖
        public override void Show()
        {
            base.Show();
            Console.WriteLine("学期:{0}",grade);
        } 

        public string Grade
        {
            get { return grade; }
            set { grade = value; }
        }

    }
}
A.3,Teacher.cs
View Code
using System;

namespace 继承_虚函数
{
    class Teacher:Person
    {

        string zhuanYe;

        public Teacher()
            : base()
        {
            this.zhuanYe = "计算机专业";
        }
        public Teacher(int id, string name, string sex, string zhuanYe)
            : base(id, name, sex)
        {
            this.zhuanYe = zhuanYe;
        }

        public string ZhuanYe
        {
            get { return zhuanYe; }
            set { zhuanYe = value; }
        }
    }
}
warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/ylbtech/p/2980945.html