Java继承

sta*_*orn 0 java inheritance

我有一个关于Java继承的问题.如果我有这个基类

class Parent {

    private String lastName;

    public Parent() {
        lastName = "Unassigned";
    }

    public String getLastName( ) {
        return lastName;
    }

    public void setLastName(String name) {
        lastName = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

而这个子类

class Child extend Parent {

        private String surName;

        public Child(String name) {
            surName = name;
        }

        public void setFullName(String first, String last) {
            surName = first;
            ..... = last;
        }

}
Run Code Online (Sandbox Code Playgroud)

我想在子类中创建一个方法,它可以在方法中更改姓氏和姓氏.所以我想知道如何在基类中找到私有成员姓氏.我应该使用继承的setLastName()方法,还是可以在不经过这种方式的情况下访问变量?

我也有问题是否要覆盖baseclass中的setLastName()方法.如何访问基类中的私有成员lastname呢?

Joh*_*ler 11

您无法从继承的类访问私有成员.您可以使它们受到保护或使用setter(在我看来,后者更可取).

您可以在继承的类中覆盖setLastName(),并通过"super"-keyword(super.setLastName("something"))使用基类的setter更改私有成员.