新手问题!求解决

imtoy 2011-12-24 03:55:56
谁知道这代码错在哪了啊?搞了半天也没找出来。

class Person{
private String name;

void setName(String n){
this.name = n;
}


String getInfo(){
return "name is"+ this.name;
}
}

class Student extends Person{

private String school;

void setSchool(String s){
this.school = s;
}
String getInfo(){
return "name is "+ name + "; school is " + school;
}
}

public class TestPrivate{
public static void main(String[] args){
Person person = new Person();
Student student = new Student();
student.setName("bill");
student.setSchool("Peking University");
System.out.println(student.getInfo());
}
}
...全文
55 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wang7535067 2011-12-24
[Quote=引用 4 楼 scorpio3k 的回复:]

private私有变量不能被子类直接使用,也可以在Person添加getName方法,然后在子类中直接调用
[/Quote]
正解,
  • 打赏
  • 举报
回复
童年的天空 2011-12-24
private私有变量不能被子类直接使用,也可以在Person添加getName方法,然后在子类中直接调用
  • 打赏
  • 举报
回复
feilonglulu 2011-12-24

class Person {
private String name;

void setName(String n) {
this.name = n;
}
String getName() {
return name;
}
String getInfo() {
return "name is" + this.name;
}
}

class Student extends Person {

private String school;

void setSchool(String s) {
this.school = s;
}
String getSchool() {
return school;
}
String getInfo() {
return "name is " + this.getName() + "; school is " + this.getSchool();
}
}

public class TestPrivate {
public static void main(String[] args) {
Person person = new Person();
Student student = new Student();
student.setName("bill");
student.setSchool("Peking University");
System.out.println(student.getInfo());
}
}

你name在person类中定义为private就要使用get方法访问
  • 打赏
  • 举报
回复
dreamhunter_lan 2011-12-24
name是private的,只能在声明这个变量的类中使用,所以可以在Person中添加一个public方法:
public String getName() {
return name;
}

然后Student的getInfo改为:
String getInfo() {
return "name is " + getName() + "; school is " + school;
}
  • 打赏
  • 举报
回复
龙四 2011-12-24
private String name;改成protected String name;才能在子类里直接访问name
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
帖子事件
创建了帖子
2011-12-24 03:55
社区公告
暂无公告