JAVA中子类能不能继承父类的私有属性和方法?

C++不能的... C++不能的 展开
 我来答
cheng701898
高粉答主

2015-10-25 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:6.2万
采纳率:85%
帮助的人:6413万
展开全部
  JAVA中,子类可以继承父类的私有属性和方法,但一般不能直接访问,但通过反射还是可以访问的:

  import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class A extends B{
public void set(int x) throws Exception{
Field i=((Class<? extends A>) this.getClass().getGenericSuperclass()).getDeclaredField("i");
i.setAccessible(true);
i.set(this, x);
}
public Object get() throws Exception{
Field i=((Class<? extends A>) this.getClass().getGenericSuperclass()).getDeclaredField("i");
i.setAccessible(true);
return i.get(this);
}

public static void main(String[] args) throws Exception{

A a=new A();
System.out.println(a.get());

a.set(777);
System.out.println(a.get());

}

}
public class B {
private int i=100;
}
  

  
fairystar2
2008-05-16 · TA获得超过1057个赞
知道小有建树答主
回答量:907
采纳率:0%
帮助的人:682万
展开全部
如果父类的数据和方法申明为私有使用(关键字private)
则子类不能访问他们
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
o0o000o00
2008-05-16 · TA获得超过373个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:185万
展开全部
那要看情况,如果是内部类的话就能访问:
public class A {
private int test = 1;

class B extends A {
public int test = 2;

public B(int test) {
System.out.println(super.test);
System.out.println(this.test);
System.out.println(test);
}
}

public static void main(String[] args) {
new A().new B(3);
}
}

如果排除内部类的话,子类是不能访问父类被private修饰的成员方法和成员属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thracla776
2008-05-16 · TA获得超过454个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:263万
展开全部
子类继承父类的所有方法和属性
private的属性和方法不能
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
otiswanglei
2008-05-16 · TA获得超过534个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:291万
展开全部
Private不行,
Protected可以,Public就更不用说了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式