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

学了下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执行结果:

猜你喜欢

转载自blog.csdn.net/qq_39979646/article/details/106315823