马士兵吧 关注:3,976贴子:9,218
  • 2回复贴,共1

小白求助关于private访问控制问题,马老师教程中的一个程序

只看楼主收藏回复

class Person {
private String name;
private int age;
public void setName(String name){this.name=name;}
public void setAge(int age) {this.age=age;}
public String getName(){return name;}
public int getAge(){return age;}
public String getInfo() {
return "Name: "+ name + "\n" +"age: "+ age;
}
}
class Student extends Person {
private String school;
public String getSchool() {return school;}
public void setSchool(String school)
{this.school =school;}
public String getInfo() {
return "Name: "+ getName() + "\nage: "+ getAge()
+ "\nschool: "+ school;
}
}
public class TestOverWrite {
public static void main(String arg[]){
Student student = new Student();
Person person = new Person();
person.setName("none");
person.setAge(1000);
student.setName("John");
student.setAge(18);
student.setSchool("SCH");
System.out.println(person.getInfo());
System.out.println(student.getInfo());
}
}
程序如上,对于private的话只有同一个类内部才能访问,那为啥子类student能够通过调用方法访问并修改基类person中private的内容呢。。求助。。


IP属地:湖北1楼2014-08-04 15:38回复
    建议楼主再看一下继承那一章的内容,这就是继承的作用,student继承了person类,简单说吧就相当于student类里有了person类里的所有方法和成员变量,那么就是说私有变量name和age就是student类的成员变量洛,这样逻辑通了么?


    2楼2014-08-06 09:50
    回复
      2026-01-18 07:52:31
      广告
      不感兴趣
      开通SVIP免广告
      stu从per继承,stu拥有per里的所有属性和方法,相当于stu就有了name和age,所以它调用的是自己的


      IP属地:浙江3楼2014-08-15 11:54
      回复