日期:2014-05-20  浏览次数:20713 次

JAVA类的继承的疑惑!!
今天看了以下内容的文章
1.创建子类
在Java语言中,所有的类都是由Object类派生出来的,比如前面介绍的Math类和String类,以及用户自己新建的类。
通过在类的声明中加入extends关键字来创建一个类的子类,其形式如下:
[修饰符] class 子类类名 extends 父类类名
{
  语句体
}
把子类定义为父类的直接子类,如果父类又是某个类的子类,则子类同时也是该类的间接子类。子类可以继承其所有父类的内容。
如果没有使用extends,则该类为java.lang.Object的子类。
类继承并不改变类中变量和方法的访问权限,如果父类中的变量和方法为public、protected或者friendly,其子类中的这些变量和方法依然为public、protected或者friendly。子类不能继承父类中访问权限为private的实例变量和实例方法。
2.类继承的传递性
类继承具有传递性,也就是说子类具有其父类和父类的父类,一直到Object类的所有类的内容。比如,B类继承了A类,而C类又继承了B类,则C类包含A类和B类的所有内容。

有点不明白,既然子类不能继承父类中访问权限为private的实例变量和实例方法,为什么还说子类包含父类所有内容,是不是有矛盾??
等等解答,谢谢!

------解决方案--------------------
是包含所有可继承内容吧,我想应该不会也没必要子类把不能使用的private的代码再在内部包括进来即使不能使用
------解决方案--------------------
要看你怎么理解"父类的所有内容",我的理解是:指父类的所有对外提供的接口。
------解决方案--------------------
你没有理解java的封装的问题。。。理解 了 封装就知道 是为什么了
------解决方案--------------------
子类不能访问超类的private修饰的属性和方法