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#继承和多态——基本讲解的主要内容,如果未能解决你的问题,请参考以下文章

java基础讲解09-----接口,继承,多态

接口讲解

.NET Core CSharp初级篇 1-6 类的多态与继承

C++笔试试题讲解(~~~可能是全站唯独一份有解析的~~~)

JAVA 特征以及基本类抽象类接口

java继承的那些事!