从子类的内存分配看,父类的private域有空间,所有我感到,说能够继承恰当一些。但是private方法,涉及JVM,有些晕。

解决方案 »

  1.   

    1、简单来说,一切都是可继承。但public、protected、private等控制了在代码中的访问权。看下例:
    class A
    {
      private int getValue(){
        return 0;
      }
      protected int getI()
      {
        return getValue();
      }  
    }class B extends A
    {
      
    }
         A a = new A();
         System.out.print(a.getI()); //输出0
         B b = new B();
         System.out.print(b.getI()); //输出0因此几种资料说法不同,我认为是角度不一样。从类的内部构造来说,是完全继承的;如果从访问权角度来说,则不是的。
    2、默认构造器(即不带任何参数的那个构造器)是可被继承的,其他构造器不能被继承(在这一点上,各种语言处理方式是不同的)。比如上例子中没有显式声明和实现任何构造器,但 new A()和new B()等正确。比如在上面的class A中添加构造器:
      public A() {}
      public A(int notUseed) {}
    后,在实例化b时仍然只能使用默认构造器B()
      

  2.   

    父类中的pulic ,protect,private都继承,但修改有要求,privat的只被父类中方法改变
      

  3.   

    lxpbuaa(桂枝香在故国晚秋):你好。
    "角度不一样"!和我的想法一样。我是这样说的:“这是一个十分微妙、理论性很强的主题。子类是否继承父类中private成员变量?从编程实用主义角度与从继承本质的角度出发,答案是不同的:
     实用主义者认为:子类仅仅继承其父类的所有可访问成员变量。
     理论主义者认为:子类继承其父类的所有成员变量,不论它们使用了什么样的访问修饰符,都会被子类继承。
    (您可以采用任何一种观点,虽然我按照后一种观点介绍相关内容。)”从对象的内存构造来说,成员变量是完全继承的;但方法,特别的,private方法(默认为final)是静态绑定的,讨论其继承,有一些令人费解。所以,我感到不太好解释private变量、方法继承的问题。这可能涉及OO本身的理解了,封装时,域与方法是一体的,运行结构,域与方法还是分离的。构造器应该不存在继承问题。如果默认构造器能够被继承,则其他构造器没有不能被继承的道理。构造器只能被系统(JVM)自动调用。再说,构造器不是类的成员,初始化块也不是类的成员。
      

  4.   

    yuzai(宇仔):hi
    父类中的成员都被继承(还是单指变量),为什么呢?
      

  5.   

    1. A class inherits all instance fields and instance methods (but not constructors) of its superclass. 2. The body of a class can always access all the fields and methods it declares itself. It can also access the accessible fields and members it inherits from its superclass.
      

  6.   

    jiangyiqun(我是一只猪) :hi》1. A class inherits all instance fields and instance methods (but not constructors) of its superclass. 
    继承时是否排除了静态成员?这就是我想问的:内存分配是可继承的标准吗?因为静态变量与实例变量不在一个内存空间。》2. The body of a class can always access all the fields and methods it declares itself. It can also access the accessible fields and members it inherits from its superclass.
    对的。访问权限是可继承的标准吗?你的答案是no? 可能和我的想法一样,但觉得这个结论用于方法身上,显得特别的别扭,我好烦它。特别想法:语法是技术,技术问题只有一个答案;OO是思想,思想问题可以有多个答案。
    大家的看法呢?