ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于父类和子类的属性方法调用

2022-07-19 01:01:16  阅读:108  来源: 互联网

标签:调用 name 子类 writeName Student 父类 public string


在 父类 a = new 子类(),容易搞混。

这里动手写一下做个实验

先定义父类和子类

    class Person
    {

        public string name;

        public string writeName()
        {
            name = "张三";
            return "这是Person类的writeName:" + name;
        }
    }
    class Student : Person
    {

        public int age;


        public string writeAge()
        {
            age = 12;
            return "这是Student类的writeAge:" + age;
        }

    }

直接输出

    class Program
    {
        static void Main(string[] args)
        {
            Person stu = new Student();
            Console.WriteLine(stu.GetType().Name);
            Console.WriteLine(stu.writeName());
        }
    }

在调用的时候会发现,stu的类型虽然是Student子类,但是stu.只能得到继承自父类的属性name和方法writeName,子类自己的属性和方法无法访问,这说明声明的是什么类型,得到的就是什么类型。

结果如下:

 

 

这种情况如果想调用子类的writeName,需要将父类的writeName声明为抽象方法或者虚方法,在子类中重写。

class Person
    {
        public string name;

        public virtual string writeName()
        {
            name = "张三";
            return "这是Person类的writeName:" + name;
        }
    }

    class Student : Person
    {

        public int age;

        public override string writeName()
        {
            name = "李四";
            return "这是Student类的writeName:" + name;
        }

        public string writeAge()
        {
            age = 12;
            return "这是Student类的writeAge:" + age;
        }

    }

运行结果如下

 

 

总结一下:

父类 a = new 子类()时,a是类型是子类,但是只能调用父类的属性和方法,但如果父类中的方法在子类中重写了,那么调用的就是子类的方法。

 

标签:调用,name,子类,writeName,Student,父类,public,string
来源: https://www.cnblogs.com/luyShare/p/16492566.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有