java子类访问父类成员
时间: 2023-10-03 09:02:56 浏览: 150
子类可以通过继承得到父类的成员,包括成员变量和成员方法。在子类中,可以使用 super 关键字来访问父类的成员。
访问父类的成员变量:
父类的成员变量可以通过 super 关键字来访问。例如,如果父类中有一个成员变量 name,子类可以通过 super.name 来访问该成员变量。
访问父类的成员方法:
父类的成员方法可以通过 super 关键字来访问。例如,如果父类中有一个成员方法 getName,子类可以通过 super.getName() 来调用该方法。
需要注意的是,如果子类中有与父类同名的成员变量或成员方法,则子类的成员会覆盖父类的成员。在这种情况下,如果需要访问父类的成员,仍然可以使用 super 关键字。
相关问题
java子类访问父类成员演示程序
下面是一个简单的 Java 程序,演示了子类如何访问父类的成员变量和方法:
```java
// 父类
class Superclass {
int num = 10;
public void display() {
System.out.println("This is the display method of superclass");
}
}
// 子类
class Subclass extends Superclass {
int num = 20;
public void display() {
System.out.println("This is the display method of subclass");
}
public void myMethod() {
Subclass sub = new Subclass();
sub.display();
super.display();
System.out.println("Value of the variable named num in subclass:" + sub.num);
System.out.println("Value of the variable named num in superclass:" + super.num);
}
}
// 测试程序
public class Main {
public static void main(String[] args) {
Subclass obj = new Subclass();
obj.myMethod();
}
}
```
输出结果为:
```
This is the display method of subclass
This is the display method of superclass
Value of the variable named num in subclass:20
Value of the variable named num in superclass:10
```
在子类中,我们可以使用 `super` 关键字来访问父类的成员变量和方法。在上面的 `myMethod` 方法中,我们创建了一个子类的实例 `sub`,并调用了它的 `display` 方法和它的 `num` 变量。接着我们使用 `super` 关键字调用了父类的 `display` 方法和它的 `num` 变量。
java子类访问父类的成员变量
在Java中,子类可以访问父类的成员变量,这主要有两种情况:
1. **默认访问(public)**:如果父类的成员变量是public,那么子类可以直接通过引用该父类的对象访问到这个变量,无需任何权限限制。
```java
class Parent {
public int parentVar; // 公开成员变量
}
class Child extends Parent {
void display() {
System.out.println("Parent's var: " + parentVar); // 子类直接访问
}
}
```
2. **受保护访问(protected)**:如果成员变量是protected,那么只有在同一包内的其他类或者子类才能访问它。
```java
class Parent {
protected int parentVar; // 受保护成员变量
}
class Child extends Parent {
void display() {
System.out.println("Parent's var: " + parentVar); // 子类也可以访问
}
}
```
3. **私有访问(private)**:虽然私有成员变量在子类外部不可见,但在子类内部可以通过`super关键字`间接访问,因为每个子类都隐含地有一个对父类型的引用。
```java
class Parent {
private int parentVar; // 私有成员变量
class Inner {
void show() {
System.out.println("Parent's var: " + super.parentVar);
}
}
}
```
阅读全文