这篇文章主要介绍了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更简洁些。。。