gpt4 book ai didi

java - 代码在子类中是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 07:26:09 27 4
gpt4 key购买 nike

package practice;

class person{
private String firstname;
private String lastname;

public person(String firstname,String lastname){
set_first(firstname);
set_last(lastname);
}

public String get_first() {
return firstname;
}
public void set_first(String firstname) {
this.firstname=firstname;
}
public void set_last(String lastname) {
this.lastname=lastname;
}
public String get_last() {
return lastname;
}
}

class employee extends person {
private int empid;
public employee(String firstname, String lastname, int empid) {
super(firstname,lastname);
set_empid(empid);
}

public void set_empid(int empid) {
this.empid=empid;
}
public int get_empid() {
return empid;
}
}

class testing_super_keyword {
public static void main(String args[]) {
employee emp=new employee("Paul","Anderson",1234);
System.out.println(emp.get_first()+" "+emp.get_last());
System.out.println(emp.get_empid());
}
}

我在这里有两个类 person 父类(super class)和 employee 子类。所以我只是想知道这段代码不应该工作,因为名字和姓氏变量在父类(super class)中是私有(private)的?但是子类,即 employee 是如何继承并使用这些成员的呢??

我还以为父类的私有(private)变量不能被继承,为什么它在这里工作得很好?

我完全糊涂了请帮忙......

最佳答案

尽管父类的私有(private)变量不会被子类继承,即 employee 但有一些公共(public)函数被称为 gettersetter 允许访问私有(private)变量来自其子类的类成员。

public String get_first() {
return firstname;
}
public void set_first(String firstname) {
this.firstname=firstname;
}
public void set_last(String lastname) {
this.lastname=lastname;
}
public String get_last() {
return lastname;
}

您会看到,当您想要从父级访问名字时,您将从员工对象调用 get_first() 以获取名字。如果您想设置名字,您将调用 set_first("name") 来设置名字。希望它可能有所帮助。

关于java - 代码在子类中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52343892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com