java中私有的属性、静态成员可以被子类继承吗? 10

 我来答
氵逸洛D6
2018-08-15
知道答主
回答量:7
采纳率:0%
帮助的人:6249
展开全部
静态成员分为静态属性和静态方法,而静态成员是不可以被继承的,因为静态成员是依附于类存在的,它属于类;静态方法在被子类“继承”(实际可以理解为声明了一个跟父类同名的静态方法)后,如果子类将该方法进行了重写,在实例化对象时,如果是子类对象则调用的是子类中该方法的实现方式,如果是父类对象则调用父类中该方法的实现方式。是一种对父类中静态方法的隐藏,但是父类的静态方法一直存在,不会像非静态方法那样,一但发生子类将父类方法重写,不管是子类对象还是父类对象调用该方法都是子类的实现方式;
另一方面,如果子类中静态方法是继承自父类的话,应该是可以用重写@Override进行标记重写的,但在java中不允许在子类中与父类同名同参的静态成员前使用该注解,这也说明了子类中的静态方法不是继承自父类,而是一种声明;
另外所有父类中的非静态成员都可以被子类继承,private等成员访问控制符,只限定子类是否可以调用该成员,不限定是否可以被继承
百度网友324204d
2017-04-28 · TA获得超过648个赞
知道小有建树答主
回答量:380
采纳率:85%
帮助的人:297万
展开全部

先说结论

父类的任何成员变量都是会被子类继承下去的。

只是由于private不能被公开访问,所以无法被子类访问,但是实质上是已经继承的。

为了讲明白这个问题,我们来做个测试:

public class Father {

private String name;

private static int sex;

public String age;
//getter and setter
}
public class Son extends Father{

public static void main(String[] args) {

Son son = new Son();
son.age="25";
son.getSex();
son.getAge();

}
}

可以看到通过get方法获取父类中的静态和private属性,这就证明了一点继承是所有父类中的属性的,但是private和静态是无法访问的,我们可以通过getter/setter方法去获取其中的值,这算一种中间的方法吧。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式