Python中类的继承代码实例

Python中类的继承代码实例

这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下

Python中类的继承代码实例

相对于C 的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。

代码如下:

#!/usr/bin/python

#filename:
pyclass.py

class
Member:   

       
def __init__(self, name,
age):   

               
self.name =
name   

               
self.age =
age   

               
print 'Member init:%s' %
self.name

def
tell(self):

print 'Name:%s,Age:%d' % (self.name,
self.age),

class
Student(Member):

def __init__(self, name, age,
marks):   

               
Member.__init__(self, name,
age)   

               
self.marks =
marks   

               
print 'Student init:%s' %
self.name

def
tell(self):

Member.tell(self)

print 'Marks:%d' %
self.marks

class
Teacher(Member):

def __init__(self, name, age,
salary):

Member.__init__(self, name,
age)   

               
self.salary =
salary   

               
print 'Teacher init:%s' %
self.name

def
tell(self):

Member.tell(self)

print 'Salary:%d' %
self.salary

s = Student('Tom', 20,
80)   

t = Teacher('Mrs.Huang', 30,
50000)   

  

members = [s,
t]   

for mem in
members:

mem.tell()  

运行效果:

复制代码代码如下:


[root@localhost hhl]# python
pyclass.py

Member
init:Tom

Student
init:Tom

Member
init:Mrs.Huang

Teacher
init:Mrs.Huang

Name:Tom,Age:20
Marks:80

Name:Mrs.Huang,Age:30
Salary:50000  

我们同样编写同样效果的C 例子:

代码如下:

//filename:
class.cpp

#include
   

#include
   

using namespace
std;   

  

class
Member   

{   

public:   

    Member(char
*n, int
a);   

    void
tell();   

private:

char
name[10];

int
age;   

};   

  

Member::Member(char *n, int
a)   

{   

    memcpy(name,
n,
sizeof(name));

age =
a;   

   
cout<<"Member
init:"<<name<<endl;

}   

  

void
Member::tell()

{   

   
cout<<"Name:"<<name<<","<<"Age:"<<age<<",";

}   

  

class Student:public
Member   

{   

public:   

    Student(char
*n, int a, int
m);   

    void
tell_s();

private:

int
marks;   

};   

  

Student::Student(char *n, int a, int m):Member(n,
a)   

{   

    marks =
m;   

   
cout<<"Student
init:"<<n<<endl;

}   

  

void
Student::tell_s()

{   

   
Member::tell();

cout<<"Marks:"<<marks<<endl;

}   

  

class Teacher:public
Member   

{   

public:   

    Teacher(char
*n, int a, int
s);   

    void
tell_t();

private:

int
salary;   

};   

  

Teacher::Teacher(char *n, int a, int s):Member(n,
a)   

{   

    salary =
s;   

   
cout<<"Teacher
init:"<<n<<endl;

}   

  

void
Teacher::tell_t()

{   

   
Member::tell();

cout<<"Salary:"<<salary<<endl;

}   

  

int
main(void)

{   

    Student
s("Tom", 20,
80);   

    Teacher
t("Mrs.Huang", 30,
50000);

s.tell_s();

t.tell_t();

return
0;   

}  

运行效果:

代码如下:

[root@localhost hhl]#
./class

Member
init:Tom

Student
init:Tom

Member
init:Mrs.Huang

Teacher
init:Mrs.Huang

Name:Tom,Age:20,Marks:80

Name:Mrs.Huang,Age:30,Salary:50000  

这两者的运行效果是一样的,但是python更简洁些。。。


上一篇:python中类中属性和方法的具体定义方法和使用


下一篇:面向对象的编程思想和Java中类的概念与设计