继承是指在派生类中可以访问基类的哪些成员,而不是指在派生类的对象中存在哪些基类的成员。例如基类定义了实例变量name子类没有定义name那么new一个子类对象,它存在name成员吗。。
我晕了。。 帮帮忙,解释一下,最好有代码做例子啊

解决方案 »

  1.   


    public class Person{
       String name;
    }public class Student extends Person{
       public static void main(String [] args){
          Student stu = new Student();
           stu.name = "LZ";
       }
    }
      

  2.   

    子类继承了父类几乎所有的成员,但是有一个不继承,就是父类的私有成员《不包括私有方法》
    在类中只能访问私有成员,外部是没法访问滴,而保护成员只能在同一个包中访问
    public就什么限制了,
      

  3.   

    建议研读下java编程思想...基础跟OOP知识讲的超牛.
      

  4.   

    父类与子类之间,出了构造方法,子类继承了父类的所有属性和方法。
    例:父类public class Person {
    private String name;
    private int age;
    private String address;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    }
    例:子类public class Sun extends Person {
    private String school; public String getSchool() {
    return school;
    } public void setSchool(String school) {
    this.school = school;
    }
    public static void main(String[] args) {
    Sun s = new Sun();
    s.setAge(12);
    s.setName("您好朋友"); }
    }
    子类没有age与name的属性,但是它继承自父类Person,所以就可以调用了。
      

  5.   

    例如基类定义了实例变量name 子类没有定义name 那么new一个子类对象,它存在name成员吗。。 
    答:当然存在.父类或者说:祖先类中的任何数据成员(含:private型),子孙类的对象空间中都包含这些数据成员.含有它们,但大部分都是不能直接访问的,只能通过方法间接访问.
    但我们通常所说的"继承"含义,更多的是从"访问权"角度理解的.如:父类中的private int i=1;子类中是不能继承的.但:子类的对象空间中确确实实是包含有变量i的空间的.只是这个变量i,在子类对象中:不能直接访问的,只能通过方法间接访问.
      

  6.   

    从实际的角度出发,子类继承了父类所有的东西,包括构造方法。无论是私有的还是公有的,无论修饰符是private还是public。但是继承了并不代表能够访问(当然,利用特殊手段绕过java机制也是可以访问到的,这点完全证明了继承了父类所有的东西的说法),构造方法其实也只是一个普通的返回值为void的方法,区别只是在java语言机制内无法显示的调用它,只能在构造实例时立即调用它而已。
      

  7.   

    在初始化子类前,jvm会在背后悄悄地创建父类
    如果父类定义的这个变量是private或default,那子类(非同包下)不会继承
    如果父类定义的这个变量是protected或public,那子类(非同包下)会继承
      

  8.   

    那么new一个子类对象,它存在name成员吗。。 
    ============================
    存在的,请运行下面代码:public class A {
    int i, j;

    void showij(){
    System.out.println("i and j:" + i + " " + j );
    }
    }
    public class B extends A {
    int k;

    void showijk(){
    System.out.println("i, j and k:" + i + " " + j + " " + k);
    }

    void sum(){
    System.out.println("sum of i, j, k is:" + (i+j+k) );
    }
    }
    public class Test {
    public static void main(String[] args){
    A a = new A();
    a.i = 1;
    a.j = 2;
    a.showij();

    B b = new B();
    b.i = 3;
    b.j = 4;
    b.k = 5;
    b.showij();
    b.showijk();
    b.sum();
    }
    }
      

  9.   

    运行结果:
    i and j:1 2
    i and j:3 4
    i, j and k:3 4 5
    sum of i, j, k is:12