A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

阿斯达克

初级黑马

  • 黑马币:16

  • 帖子:8

  • 精华:0

© 阿斯达克 初级黑马   /  2015-5-9 21:30  /  6682 人查看  /  28 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
父类中 成员变量 用private修饰,子类怎么访问呢?

28 个回复

正序浏览
这个算是父类私有的属性,如果父类没有定义这个属性的set和get方法的话,那么你就不能访问到这个属性。这个就像父类的二奶,他是不肯你去访问的(听一个视频上讲的,至今记忆深刻)。
回复 使用道具 举报
可以在父类中写一个public修饰方法,来间接调用
回复 使用道具 举报
子类中可以使用父类的get方法调用父类私有成员变量
回复 使用道具 举报
子类不能直接访问父类私有成员,只有通过父类提供的方法访问
回复 使用道具 举报
子类只能访问父类中所有非私有的成员,子类若要访问,需要在父类中提供公共的访问方式get和set的方法
回复 使用道具 举报
黛玉之殇 发表于 2015-5-14 09:30
这么形象的比喻。是不是该给点黑马币啊

她干爹中还有一个 set 方法(写支票),那么她就可以通过 get 方法去拿钱了{:3_46:}
回复 使用道具 举报
黛玉之殇 发表于 2015-5-14 09:28
private 是私有化的意思,打个比方:某女星找了一个干爹,干爹就是她的父类,她想要她干爹的钱,但是她干爹 ...

这么形象的比喻。是不是该给点黑马币啊{:3_50:}
回复 使用道具 举报
private 是私有化的意思,打个比方:某女星找了一个干爹,干爹就是她的父类,她想要她干爹的钱,但是她干爹银行卡设置了密码(private),私有化了,因为他干爹知道不能直接把全部钱给她,但是疼她必须得给钱,,,于是就开放了一个 get 方法(如支票),这样子,这个女星就可以通过访问 get 方法得到钱了。{:3_64:}感觉自己太形象了,这比喻
回复 使用道具 举报
父类中成员变量私有后,如果需要子类访问,要在父类中写set和get方法来获取
回复 使用道具 举报
在父类中建立getset方法进行获取
回复 使用道具 举报
子类不能直接访问啊,但是可以通过一个public的getter和setter方法来访问
回复 使用道具 举报
要么调用其他方法,要么父类接口
回复 使用道具 举报
子类无法访问,只能调用父类方法访问它
回复 使用道具 举报
  1. public class Question2 {

  2.         public static void main(String[] args) {
  3.                 Student s1=new Student("xiaoming","public XXX school");
  4.         }

  5. }
  6. class Student extends Person{
  7.         String school;
  8.         Student(String name,String school){
  9.                 super.setName(name); //访问父类私有成员需要使用父类提供访部访问的方法
  10.                                                          //因为继承之后就相当于子类也拥有这个私有成员
  11.                 this.school=school;
  12.         }
  13.         Student(){
  14.                
  15.         }
  16. }

  17. class Person{
  18.         private String name;

  19.         public String getName() {
  20.                 return name;
  21.         }
  22.         public void setName(String name) {
  23.                 this.name = name;
  24.         }
  25.        
  26. }
复制代码
回复 使用道具 举报
访问不到
回复 使用道具 举报
楼上的都是正解,,,
回复 使用道具 举报
可以在父类中写一个get  set方法 让子类调用
回复 使用道具 举报
子类不能直接访问父类中的私有变量,可以通过set方法赋值,用get方法获取
回复 使用道具 举报
本帖最后由 只想好好的 于 2015-5-10 23:40 编辑

子类是不能访问父类私有的方法的,但是可以设置一个get()方法,将他取出来,如
class Person{
private String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
class Sun extends Person{
public static void main(String[] args){
Sun s = new Sun();
Person p = new Person();
p.serName("hello");
String name = s.getName();
System.out.println(name);
}
}
回复 使用道具 举报
被私有 修饰后  除了自己  其他类都不能访问 只有通过构造方法 或者setXXX和getXXX来赋值和调用
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马