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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Fightingforever 中级黑马   /  2014-10-25 09:19  /  1567 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

父类中的哪些方法子类是不能继承的呀!

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

15 个回复

倒序浏览
1.子类和父类在同一包中的继承性:private的变量和方法(包括静态和实例)不可继承
2.子类和父类不在同一包中的继承性:private,友好的变量和方法(包括静态和实例)不可继承
回复 使用道具 举报
额!又被冷落了  没人回复
回复 使用道具 举报
子类继承父类的成员变量和成员函数,子类无法继承父类的构造函数。由于无法继承构造函数,可以使用super()调用,Java规定在子类的构造函数中,必须调用父类的构造函数。因为在子类构造函数中给成员变量赋值的时候,会产生重复代码,当没有明确调用父类构造函数时,编译器会自动添加super();调用父类无参数构造函数,super()括号可传入参数指定父类的构造函数。
回复 使用道具 举报
staycolorful 发表于 2014-10-25 11:36
1.子类和父类在同一包中的继承性:private的变量和方法(包括静态和实例)不可继承
2.子类和父类不在同一包 ...

java中静态属性和静态方法可以被继承,但是不能重写
子类也继承了private,但是没有访问权限
回复 使用道具 举报
cs8630323 发表于 2014-10-25 19:03
java中静态属性和静态方法可以被继承,但是不能重写
子类也继承了private,但是没有访问权限 ...

继承的前提是可视  private的变量和方法(包括静态和实例)都是不可视的,怎么可能继承???!!!
  1. class A{
  2.         private  int x=0;
  3. }
  4. class B extends A{
  5.         void  show(){
  6.                 System.out.println(x);
  7.         }
  8. }
复制代码

这段代码在编译时就提示错误:x是不可视的
回复 使用道具 举报
staycolorful 发表于 2014-10-26 09:55
继承的前提是可视  private的变量和方法(包括静态和实例)都是不可视的,怎么可能继承???!!!

这 ...

class A{
        private  int x=0;
         int  a()
            {
              return  x;
            }
}
class B extends A{
        void  show(){
                System.out.println(super.a());
        }
}
回复 使用道具 举报
cs8630323 发表于 2014-10-26 11:49
class A{
        private  int x=0;
         int  a()

a()方法是可以继承的 因为是友好类型 同一包中友好的变量和方法(包括静态和实例)是可以继承的
而继承的方法可以访问未被继承的变量和方法  就像楼主的例子  所以private虽然不被子类直接继承 但这部分内存并非成了垃圾
回复 使用道具 举报
菜鸟小6 来自手机 中级黑马 2014-10-27 15:58:38
9#
谢谢,解释的很详细
回复 使用道具 举报
staycolorful 发表于 2014-10-27 15:53
a()方法是可以继承的 因为是友好类型 同一包中友好的变量和方法(包括静态和实例)是可以继承的
而继承的 ...

不要过度夸大访问权限修饰符,它仅仅是限制访问权限
真累!我再好好说说。非静态域只能使用本对象调用,如果父类没有继承私有域,父类get方法可能怎么调用子类私有域呢?还有你用new B().x调用x,编译器告诉你x不可视,而不是无此变量.  ok?
回复 使用道具 举报
cs8630323 发表于 2014-10-27 16:33
不要过度夸大访问权限修饰符,它仅仅是限制访问权限
真累!我再好好说说。非静态域只能使用本对象调用, ...

什么意思??!!!你有没有真认读我的回复???什么没有此变量???都说了它占内存空间!!!
回复 使用道具 举报
staycolorful 发表于 2014-10-27 16:42
什么意思??!!!你有没有真认读我的回复???什么没有此变量???都说了它占内存空间!!! ...

呵呵,自己看,http://blog.csdn.net/xinglongbing/article/details/2911568
真是累啊,你不信我也去百度下啊
回复 使用道具 举报
cs8630323 发表于 2014-10-25 19:03
java中静态属性和静态方法可以被继承,但是不能重写
子类也继承了private,但是没有访问权限 ...

谢谢你 可爱的小企鹅!
回复 使用道具 举报
私有类,私有成员变量子类都是不能继承的!
回复 使用道具 举报
Rain2692 发表于 2014-10-27 18:09
私有类,私有成员变量子类都是不能继承的!

难道我写这么多你没看,唉
回复 使用道具 举报
Fightingforever 发表于 2014-10-27 18:07
谢谢你 可爱的小企鹅!

不谢。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马