类的继承

简介: 类的继承

类的继承:一个类继承另一个类,自动拥有这个类的属性和方法,类似于包含与被包含的关系。被继承的类称为父类--子类则是继承父类的类。一个父类可以有多个子类;一个子类可以有多个父类(多继承)


问题

创建子类时,要是直接进行调用,系统会报错,必须对子类进行实例化。那要如何对子类进行实例化呢?


方法

首先先创造父类,将其属性定义,然后创建多个子类(格式子类(父类)),接着对子类实例化,在对子类实例化时也要将属性补充完整。

代码清单

错误示范:

#父类:将所有类的公共属性和方法进行统一定义
class Dad():

   def __
init__(self,greet,demandmoney):
       print('老爸我没生活费了!')

       
self.greet=greet
       
self.demandmoney=demandmoney
   def f(self):

       print('{}今天你很帅,{}&
apos;.format(self.greet,self.demandmoney))
   def ff(ff):

       print('我没钱耍朋友了')

#子类(
父类):可继承父类所有属性
class Girl(Dad):

   pass    #mean do nothing 但是仍然
拥有父类的属性和方法
class Son(Dad):

   pass    #mean do nothing

   

a=Girl()

a.ff()
a.f()

运行结果:Traceback (most recent call last):

 File "D:/123456/456.py", line 16, in <module>
   a=
Girl()
TypeError: Dad.__init__() missing 2 required positional arguments: &apos;greet&apos; and &apos;demandmoney&apos;

正确代码:

#父类:将所有类的公共属性和方法进行统一定义

class Dad():

   def __init__(self,greet,demandmoney):

       print(&apos;老爸我没生活费了!&apos;)

       self.greet=greet

       self.demandmoney=demandmoney

   def f(self):

       print(&apos;{}今天你很帅,{}&apos;.format(self.greet,self.demandmoney))

   def ff(ff):

       print(&apos;我没钱耍朋友了&apos;)

#子类(父类):可继承父类所有属性

class Girl(Dad):

   pass    #mean do nothing 但是仍然拥有父类的属性和方法

class Son(Dad):

   def son(self):#子类可以拥有自己的属性与方法

       print(&apos;老爸我想多一点生活费&apos;)

   

#a=Girl()

#a.ff()

#a.f()

#创建对象(将子类进行实类化)

a=Girl(&apos;老爸早上好&apos;,1500)

a.ff()

a.f()

b=Son(&apos;老爸早上好&apos;,2000)

b.ff()

b.f()

b.son()

打印结果:老爸我没生活费了!

我没钱耍朋友了

老爸早上好今天你很帅,1500

老爸我没生活费了!

我没钱耍朋友了

老爸早上好今天你很帅,2000

老爸我想多一点生活费


结语

通过此次实验,我们更加了解了类的继承,以及要对子类实例化,对其实例化时也要将属性补充完整。

目录
相关文章
|
6月前
|
存储 编译器 数据安全/隐私保护
|
8月前
|
数据安全/隐私保护 C++
C++中类的继承技术详解
C++中类的继承技术详解
85 1
|
8月前
|
安全 程序员 编译器
【C++】继承(定义、菱形继承、虚拟继承)
【C++】继承(定义、菱形继承、虚拟继承)
87 1
|
8月前
|
Python
类的继承
类的继承
40 1
C++学习笔记_03类的继承 2021-04-15
C++学习笔记_03类的继承 2021-04-15
|
8月前
|
程序员 C++
C++类的继承
C++类的继承
|
8月前
|
C++
C++继承、多继承及菱形继承
C++继承、多继承及菱形继承
|
存储 Python
|
Java
类的继承多态
类的继承多态
87 0