Python和java的类比较

本文深入探讨了Python中类的定义、成员变量、构造方法及方法的实现,同时讲解了继承的概念,包括如何使用super调用基类方法,以及多继承的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 类的定义

1. 初步比较
class people:
	# 成员变量 类似java 中的public标识符
	name = ' '
	age = ' '
	#  私有成员变量,类似java中的private标识符
	__weight = 0
	
	# 定义构造方法,类似javaz中的构造方法
	# 这里的self 类似java中的 this,实际就是该实例的地址
	# self.__class__ 是指向类
	def __init__(self,n,a,w):
		self.name = n
		self.age = a
		self.__weight = w
		
	# 定义共有方法
	def speak(self):
		print("%s 说: 我 %d 岁"%(self.name,self.age))
	
	# 定义私有方法
	def __foo(self):  
        print('这是私有方法')

# 实例化类
p = people('limm',10,30)
p.speak()
p.foo() # 异常
2. 继承
class student(people):
	grade = ' '
	def __init__(self,n,a,w,g):
		#类似于super()
		people.__init__(self,n,a,w,)
		self.grade = g
	
	# 覆写父类方法
	def speak(self)
		print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
		
3. 多继承

class people:
    name = ' '
    age = ' '
    __weight = 0

    def __init__(self, n, a, w):
        self.name = n
        self.age = a
        self.__weight = w

    def speak(self):
        print("%s 说: 我 %d 岁。" % (self.name, self.age))


class student(people):
    grade = ''

    def __init__(self,n,a,w,g):
        people.__init__(self, n, a, w)
        self.grade = g

    def speak(self):
        print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade))


class speaker():
    topic = ''
    name = ''

    def __init__(self, n, t):
        self.name = n
        self.topic = t

    def speak(self):
        print("我叫 %s,我是一个演说家,我演讲的主题是 %s" % (self.name, self.topic))

class sample(speaker,student):
    a = ''
    def __init__(self,n,a,w,g,t):
        student.__init__(self,n,a,w,g)
        speaker.__init__(self,n,t)

test = sample("Tim",25,80,4,"Python")
test.speak()   #方法名同,默认调用的是在括号中排前地父类的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值