您好,欢迎来到刀刀网。
搜索
您的当前位置:首页super 是什么意思

super 是什么意思

来源:刀刀网


在Java编程语言中,“this”和“super”是两个特殊的关键字,它们用于处理类之间的关系和实例方法调用。

“this”表示当前对象,可以在类的非static成员内部使用,用于引用当前对象的属性和方法。它具有静态类型和动态类型,静态类型是当前类本身,动态类型是当前对象的实际类型。此外,“this”可以被传递给其他函数,也可以用于调用成员函数。

“super”关键字则用于调用父类的构造函数或方法。它同样具有特殊的语法,不是变量,没有类型。在子类中使用“super.method()”可以调用父类中的同名方法,而不是子类中的方法。这种调用方式遵循Java的多态性原则,即任何public非static函数的调用都是多态的。

为什么“super”不能被当作普通变量对待呢?因为如果“super”是一个变量,那么在调用方法时,它会始终引用当前对象,无论其静态类型如何。这将导致方法调用总是指向子类版本,而非父类版本,这与Java的多态性原则相矛盾。

因此,“super”应该被理解为一种特殊的语法,类似于“super::method”。在实际编程中,使用“this”已经可以满足大部分需求,因为大多数情况下不需要直接访问父类的属性或方法。

然而,“super”还有一种重要的用途,即调用父类中的protected成员。由于protected成员只允许在同一个包内的子类访问,因此需要使用“super”关键字来访问父类的protected成员,这是唯一的方法。

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务