在JAVA中子类如何访问父类
时间: 2024-12-19 22:26:01 浏览: 19
在Java中,子类可以访问父类的公有(public)、保护(protected)以及默认访问权限(package-private,在同一包内可见)的方法和属性。以下是子类访问父类成员的不同情况:
1. **直接访问**: 子类可以直接访问父类的公有(Public)和默认访问权限(在同一包内的)成员变量和方法。
```java
class Parent {
public int parentVar;
void parentMethod() {
// ...
}
}
class Child extends Parent {
// 子类可以直接使用parentVar和parentMethod
}
```
2. **继承访问**: 子类可以访问父类的保护(protected)成员,只要它们在同一包或子包中,或者继承自父类。
```java
class Parent {
protected int protectedVar;
protected void protectedMethod() {
// ...
}
}
class Child extends Parent {
// 子类可以在Child类内部访问protectedVar和protectedMethod
}
```
3. **强制转换**: 如果父类引用指向了子类对象,子类也可以通过强制类型转换来访问私有(private)成员,但这不是设计模式推荐的做法,因为这会破坏封装性。
```java
class Parent {
private String privateVar;
class Inner {
public void accessPrivate(Parent p) {
System.out.println(p.privateVar); // 这里只是为了演示,实际应用应避免这样做
}
}
}
Child child = new Child();
Parent.parentVar = "example";
((Parent)child).privateVar; // 强制类型转换,但在实际代码中不建议如此操作
```
阅读全文