ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#与Python的继承对比介绍。

2020-05-25 12:05:19  阅读:230  来源: 互联网

标签:name Person C# gender public Python Student 对比 string


学了下C#面向对象的重要特征---继承,想对比下Python是如何继承的。

先介绍下C#中类是怎么继承的。

创建Person父类;

定义父类共同的属性,比如身份证id,姓名name,年龄age和性别gender;

定义父类自己拥有的方法,比如无参的构造函数和有参的构造函数;

定义父类共同的方法,比如Dispaly。

 public class Person
    {
        //定义Person父类共同属性
        private string _id; //身份证id
        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }

        private string _name;//姓名name
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        private int _age; //年龄age
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        private string _gender; //性别gender
        public string Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }

        public Person()
        {
        }

        public Person(string name, int age, string gender)
        {
            _name = name;
            _age = age;
            _gender = gender;

        }

        //Person父类的共有方法
        public void Display()
        {
            Console.WriteLine("姓名:{0},性别:{1},年龄:{2}", this._name, this._gender, this._age);
        }
    }

创建学生子类,继承Person父类的共同属性和方法。

子类自定义子类拥有的属性:班级名称className,学号classId;

子类自定义子类拥有的方法:Study。

    //创建Student,继承Person类
    public class Student : Person
    {
        //定义Student子类的属性
        private string _className; //班级名称className
        public string ClassName
        {
            get { return _className; }
            set { _className = value; }
        }

        private string _classId; //学号classId
        public string ClassId
        {
            get { return _classId; }
            set { _classId = value; }

        }

        public Student()
        {
        }

        //定义Student子类独有的方法
        public void Study()
        {
            Console.WriteLine("{0}正在学习...",this.Name);
        }
    }

在Program.cs中的Main方法中添加一下代码,并进行测试。

    class Program
    {
        static void Main(string[] args)
        {
            Person objPerson = new Person("人类一号",18,"男");
            objPerson.Display();

            Student objStudent = new Student();
            objStudent.Name = "学生一号";
            objStudent.Age = 18;
            objStudent.Gender = "女";
            objStudent.Display();
            objStudent.Study();

            Console.ReadKey();
        }
    }

C#执行结果:

以上是通过C#语言的继承介绍,现在简单的用Python来介绍下Python是如何继承的。

同样的Person父类和Student子类的使用。

class Person:
    # 父类共有的属性
    name = "人类一号"
    age = 18
    gender = "男"

    def __init__(self):
        print("父类默认执行,调用父类的构造方法")

    # 创建父类的方法
    def parentMethod(self):
        print("姓名:%s,年纪:%d,性别:%s" % (Person.name, Person.age, Person.gender))


class Student(Person):
    className = "班级一号"
    classId = 1001

    def __init__(self):
        print("子类默认执行,调用子类的构造方法")

    def studentMethod(self):
        Student.name = "学生一号"
        Student.age = 18
        Student.gender = "女"
        print("姓名:%s,年纪:%d,性别:%s" % (Student.name, Student.age, Student.gender))
        print("%s的班级名称是%s,学号是%d" % (Student.name, Student.className, objStudent.classId))


# 创建父类的对象
objPerson = Person()
objPerson.parentMethod()

# 创建子类的对象
objStudent = Student()
objStudent.studentMethod()

Python执行结果:

 

标签:name,Person,C#,gender,public,Python,Student,对比,string
来源: https://blog.csdn.net/qq_39979646/article/details/106315823

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

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

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

ICode9版权所有