面向对象编程-继承实例

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4
 5 class School(object):
 6     def __init__(self,name,addr):
 7         self.name=name
 8         self.addr=addr
 9         self.students=[]
10         self.teachers=[]
11
12     def enroll(self,stu_obj):
13         print(‘为学员%s办理注册手续‘ % stu_obj.name)
14         self.students.append(stu_obj)
15
16     def employ(self,tea_obj):
17         print(‘为教师%s办理注册手续‘ % tea_obj.name)
18         self.teachers.append(tea_obj)
19
20 class SchoolMember(object):
21     def __init__(self,name,age,sex):
22         self.name=name
23         self.age=age
24         self.sex=sex
25     def tell(self):
26         print(‘‘‘----
27         ‘‘‘)
28
29 class Teacher(SchoolMember):
30     def __init__(self, name, age, sex, salary, course):
31         super(Teacher, self).__init__(name, age, sex)
32         self.salary = salary
33         self.course=course
34
35     def tell(self):
36         print(‘‘‘
37         ----info of {_name}----
38         Name:{_name}
39         Age:{_age}
40         Sex:{_sex}
41         Salary:{_salary}
42         Course:{_course}
43         ‘‘‘.format(_name=self.name, _age=self.age, _sex=self.sex, _salary=self.salary, _course=self.course))
44
45     def teach(self):
46         print(‘%s is teaching course [%s]‘ % (self.name, self.course))
47
48 class Student(SchoolMember):
49     def __init__(self,name,age,sex,stu_id,grade):
50         super(Student,self).__init__(name, age, sex)
51         self.stu_id = stu_id
52         self.grade=grade
53
54     def tell(self):
55         print(‘‘‘
56         ----info of {_name}----
57         Name:{_name}
58         Age:{_age}
59         Sex:{_sex}
60         Stu_id:{_stu_id}
61         Grade:{_grade}
62         ‘‘‘.format(_name=self.name, _age=self.age, _sex=self.sex, _stu_id=self.stu_id, _grade=self.grade))
63
64     def learn(self):
65         print(‘%s is learning in grade [%s]‘ % (self.name, self.grade))
66
67     def pay_tuition(self,amount):
68         print(‘%s has paid tuition for $%s‘ % (self.name,amount))
69
70 school=School(‘BIT‘,‘中关村‘)
71 t1=Teacher(‘Wang‘,40,‘F‘,200000,‘BD‘)
72 s1=Student(‘Tao‘,24,‘M‘,3120180812,‘BD‘)
73 school.enroll(s1)
74 school.employ(t1)
75 t1.tell()
76 s1.tell()
77 print(school.students)
78 school.students[0].learn()
79 school.teachers[0].teach()

运行结果:

原文地址:https://www.cnblogs.com/BIT-taozhen/p/10409952.html

时间: 2024-10-19 19:52:31

面向对象编程-继承实例的相关文章

C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到名

C++ Primer 学习笔记_69_面向对象编程 -继承景况下的类作用域

面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到名

Javascript 进阶 面向对象编程 继承的一个例子

Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承,这篇使用一个例子来展示js如何面向对象编程,以及如何基于类实现继承. 1.利用面向对象的写法,实现下面这个功能,实时更新数据的一个例子: 2.使用对上面类的继承,完成下面的效果: 好了,不多说,js的训练全靠敲,所以如果觉得面向对象不是很扎实,可以照着敲一个,如果觉得很扎实了,提供了效果图,可以自己写试试. 1.第一个效果图代码: [javascript] view pl

Python 面向对象编程——继承和多态

1.1   继承和多态 1.1.1   继承 当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). >>> class Animal(object): ...    def run(self): ...        print('Animal is running...') #父类 ... >>> class Dog(Ani

Go语言学习(十三)面向对象编程-继承

1.匿名组合 Go语言也提供了继承,但是采用了组合的方式,所以我们将其称为匿名组合: package main import "fmt" //定义基类 type Base struct { Name string } //基类相关的2个成员方法 func (base *Base) A() { fmt.Println("Base method A called...") } func (base *Base) B() { fmt.Println("Base

面向对象编程——继承和多态(四)

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): #为啥没有__init__,因为不需要初始化,就self一个参数. print("Animal is running.

面向对象编程--继承

一.子类的原型继承 -- 类式继承 // 声明父类 function SuperClass(){ this.superValue = true } //为父类添加共有方法 SuperClass.prototype.getSuperValue = function(){ return this.superValue } //声明子类 function SubClass(){ this.subValue = false; } //继承父类 subClass.prototype = new Super

python -- 面向对象编程(继承、重写)

一.继承 子类可以继承父类的所有公有成员,但不能直接访问父类的私有成员,只能通过父类的公有方法间接访问私有属性或私有方法. 如: class DerviedClassName(BaseClassName1[,BaseClassName2,......]): 语句1 语句2 ....... 语句N 公有属性既可以在类的内部进行访问,也可以在外部程序中使用. 派生类(子类)继承了基类(父类)的行为和属性之后,还可以增加某些特定的行为和属性. 继承分为单继承和多继承 A.单继承 # ---------

PHP面向对象编程简单实例

<?php date_default_timezone_set("PRC"); /** 1.静态属性用于保存类的公有数据* 2.静态方法里面只能访问静态属性* 3.静态成员不需要实例化对象就可以进行访问* 4.类的内部可以通过self或者static关键字访问自身静态成员* 5.可以通过parent关键字访问父类的静态成员* 6.可以通过类的名称在类定义外部访问静态成员**/class Human{public $name;protected $height; //只有自身和子类