Java继承:子类如何访问父类成员

发布时间:2025-02-25 07:11:26 作者:小樊
来源:亿速云 阅读:83

在Java中,子类可以通过以下方式访问父类的成员:

  1. 访问父类的公共成员(public): 子类可以直接访问父类的公共成员变量和公共成员方法。
class Parent {
    public String publicVar = "Parent's public variable";
    public void publicMethod() {
        System.out.println("Parent's public method");
    }
}

class Child extends Parent {
    void accessParentMembers() {
        System.out.println(publicVar); // 访问父类的公共成员变量
        publicMethod(); // 访问父类的公共成员方法
    }
}
  1. 访问父类的受保护成员(protected): 子类可以直接访问父类的受保护成员变量和受保护成员方法。
class Parent {
    protected String protectedVar = "Parent's protected variable";
    protected void protectedMethod() {
        System.out.println("Parent's protected method");
    }
}

class Child extends Parent {
    void accessParentMembers() {
        System.out.println(protectedVar); // 访问父类的受保护成员变量
        protectedMethod(); // 访问父类的受保护成员方法
    }
}
  1. 访问父类的默认成员(包级私有,没有修饰符): 如果子类与父类在同一个包中,子类可以直接访问父类的默认成员变量和默认成员方法。如果子类与父类不在同一个包中,子类无法访问父类的默认成员。
// 同一个包中的情况
class Parent {
    String defaultVar = "Parent's default variable";
    void defaultMethod() {
        System.out.println("Parent's default method");
    }
}

class Child extends Parent {
    void accessParentMembers() {
        System.out.println(defaultVar); // 访问父类的默认成员变量
        defaultMethod(); // 访问父类的默认成员方法
    }
}
  1. 使用父类引用访问父类成员: 如果子类继承了父类,可以使用父类引用访问父类的成员。这种方式通常用于多态场景。
class Parent {
    public String publicVar = "Parent's public variable";
    protected String protectedVar = "Parent's protected variable";
    String defaultVar = "Parent's default variable";
    public void publicMethod() {
        System.out.println("Parent's public method");
    }
    protected void protectedMethod() {
        System.out.println("Parent's protected method");
    }
    void defaultMethod() {
        System.out.println("Parent's default method");
    }
}

class Child extends Parent {
    void accessParentMembers() {
        System.out.println(publicVar); // 访问父类的公共成员变量
        publicMethod(); // 访问父类的公共成员方法
        System.out.println(protectedVar); // 访问父类的受保护成员变量
        protectedMethod(); // 访问父类的受保护成员方法
        System.out.println(defaultVar); // 访问父类的默认成员变量
        defaultMethod(); // 访问父类的默认成员方法
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.accessParentMembers();

        Parent parent = new Child();
        System.out.println(parent.publicVar); // 访问父类的公共成员变量
        parent.publicMethod(); // 访问父类的公共成员方法
        // System.out.println(parent.protectedVar); // 无法访问父类的受保护成员变量
        // parent.protectedMethod(); // 无法访问父类的受保护成员方法
        // System.out.println(parent.defaultVar); // 无法访问父类的默认成员变量
        // parent.defaultMethod(); // 无法访问父类的默认成员方法
    }
}

注意:子类不能继承父类的私有成员(private)。如果需要在子类中访问父类的私有成员,可以通过父类提供的公共或受保护的方法来实现。

推荐阅读:
  1. Java中读写锁的原理是什么
  2. JAVA中为什么要慎重使用继承

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:继承与多态:Java中的实现技巧

下一篇:Java继承:版本兼容性问题如何处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》