欢迎来到天天文库
浏览记录
ID:57755041
大小:14.50 KB
页数:2页
时间:2020-09-02
《子类继承父类private属性问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、子类可以继承父类的private属性,但是不能访问。具体到以下这个程序如何解释呢?代码:classPerson{ privateStringname; privateintage; publicvoidsetName(Stringname){ this.name=name; } publicvoidsetAge(intage){ this.age=age; } publicStringgetNam
2、e(){ returnname; } publicintgetAge(){ returnage; }}classStudentextendsPerson{ privateStringschool; publicvoidsetSchool(Stringschool){ this.school=school; } publicStringgetSchool(){ returnsc
3、hool; }}publicclassTestPerson{ publicstaticvoidmain(String[]args){ Studentstudent=newStudent(); student.setName("John");//子类继承父类的方法 student.setAge(18); student.setSchool("SCH"); System.out.println(student
4、.getName()); System.out.println(student.getAge()); System.out.println(student.getSchool()); }}我在网上搜索有如下两种解释:(1)子类是不能访问父类中private的属性和方法的,但子类能访问父类的public的属性和方法,因为student这个类继承父类Person,而父类Person里的setName()是public的,所以子类能访问setName()这个方法,setNa
5、me()这个方法又是在父类Person里的,在同一个类里的方法当然可以访问这个类的属性,总的来说:就是子类student通过setName()来间接访问父类Person的私有属性(2)子类虽然不能访问父类的私有变量,但是子类继承了父类的变量和方法,Student类实际上有3个变量,分别是nameageschool,有6个方法,分别是父类的4个和自己的两个,实际上你在main方法是给自己的private变量nameageschool赋值,所以你在get时取到的是自己的private变量值而不是父类private变量
6、的值一般是把父类的属性设置为private的,然后提供一个public的方法可以获得该属性,这样父类就可以实现封装,子类可以继承父类属性和方法。
此文档下载收益归作者所有