Java 若想访问超类的变量,可以通过
时间: 2024-04-29 16:21:30 浏览: 37
使用 `super` 关键字来访问超类的变量。在子类中,如果定义了一个与超类同名的变量,那么子类变量会覆盖超类变量,此时可以使用 `super` 关键字来访问超类的变量。例如:
```java
public class SuperClass {
protected int num = 10;
}
public class SubClass extends SuperClass {
int num = 20;
void printNum() {
System.out.println("子类中的num:" + num); // 输出 20
System.out.println("父类中的num:" + super.num); // 输出 10
}
}
```
在上面的例子中,子类 `SubClass` 中定义了一个与超类 `SuperClass` 相同名称的变量 `num`,此时可以使用 `super.num` 来访问超类的变量 `num`。
相关问题
java语言中什么是超类
在Java语言中,超类(也称为父类或基类)是指一个类(如`Test`)通过关键字`extends`从另一个已存在的类继承属性和行为的概念。这种继承允许子类(派生类)访问并使用超类的成员变量和方法[^1],从而避免重复编写相似的功能。例如:
```java
// 假设有一个名为Animal的超类
class Animal {
void eat() {
System.out.println("动物吃");
}
}
// 子类Dog extends Animal,那么Dog就有eat()方法
class Dog extends Animal {
// 可以直接调用超类的方法
public void bark() {
System.out.println("狗叫");
}
}
// 测试代码
public class Test {
public static void main(String[] args) {
// 创建Dog对象,它自动获得了Animal的特性
Dog dog = new Dog();
// 调用eat()方法,这是从Animal类继承来的
System.out.println(dog.eat()); // 输出 "动物吃"
}
}
```
: 关于继承和超类的更多细节可以查看Java文档中关于类继承的部分。
java父类的覆盖变量
### Java 中子类覆盖父类变量的行为和规则
当子类中存在与父类相同名称的实例变量时,这被称为变量隐藏而非真正的覆盖。这种现象意味着子类中的变量遮蔽了来自父类的同名成员变量。
在运行期间,如果通过子类的对象来访问该变量,则会优先获取子类定义的那个版本;而要访问父类里的原始数据成员,则需显式地使用 `super` 关键字来进行限定[^1]。
#### 变量隐藏的例子
下面是一个简单的例子展示这种情况:
```java
class A {
int i = 2;
}
class B extends A {
int i = 3;
void show() {
System.out.println("i=" + this.i); // 访问的是自己的属性
System.out.println("super.i=" + super.i); // 明确指出要访问超类(A)的属性
}
}
```
在这个案例里,执行 `new B().show()` 将会产生如下输出:
- 对于第一个打印语句,“this.i”指向当前对象即类B内部声明的那个整型数;
- 第二个则明确指定了想要得到其直接基底类型所持有的那个数值。
因此最终显示的信息将是:“i=3”,紧接着是“super.i=2”。
需要注意,在某些场景下,比如多态环境中,理解这一点非常重要,因为它可能影响程序逻辑的表现形式[^4]。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)