• 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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    数据结构总结(UPDATING......)
    课件例题4.11,4.12
    Luogu P1525 关押罪犯
    Luogu P1540 机器翻译
    Luogu P1313 计算系数
    Luogu P1311 选择客栈
    Luogu P1519 穿越栅栏 Overfencing
    Luogu P2863 [USACO06JAN]牛的舞会The Cow Prom
    Tarjan学习笔记
    Luogu P3393 逃离僵尸岛
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2980945.html
Copyright © 2020-2023  润新知