我有一个问题
我创建了class A class B class B 继承了class Aclass A{
int age;
String name;
public void test()
{
System.out.println("testA");//随便什么
}
}
class B extendes A{为什么我在这里没有办法访问class A的age和name
public void test(){
System.out.println("testB");//随便什么
}第二个问题
还是这2个class A B 如果在A 中还有一个属性一个新的class Cclass C {
int c=10;
}
class A{
int age;
String name;
C myclassC;      // class C
public void test()
{
System.out.println("testA");//随便什么
}
}
class B extendes A{public void test(){
//为什么我在这里可以访问到C, 但是C。c这个变量是null 如果我想得到C.c 10怎么做
}
谢谢了,我刚开始学习。谢谢执教

解决方案 »

  1.   

    第一个问题:可以访问的,但是要在方法内部,先实例化对象后再访问,如下面的:
    public class B extends A {
    public static void main(String [] args){
    B b = new B();
    int age = b.age;
    String name = b.name;
    }
    }
      

  2.   

    第二个问题,想不为空的话,就使用构造函数先初始化对象的值,然后再New出来,这样就不会为Null了.
      

  3.   

    extendes 关键字错了, 是extends
      

  4.   

    我的问题就是为什么age 和那么一定要在方法中才可以访问到?age 和name在我的classe B 的
    public void test(){
    System.out.println("testB");//随便什么
    }
    是可以访问的,,没问题
    在方法外 class内就不能访问
    为什么
    谢谢了
      

  5.   

    父类的方法和属性(private除外)在子类中是可见的,就像在子类中声明的一样。可以同过new创建C对象啊
      

  6.   

    晕,你连Java里的全局变量如果访问和设置都不懂啊……还是把Java继承和类最基础的概念好好看看吧
      

  7.   

    如果A和B在同一包内在B中完全可以访问到A的成员
    class A{
    int age;
    String name;
    public void test()
    {
    System.out.println("testA");//随便什么
    }
    }class B extends A{
    int newAge = this.age;
    @Override
    public void test()
    {
    this.age = 1;
    this.name = "1";
    }
    }
    如果A和B异包,则首先要将A改为public class, 因为默认修饰符的访问域只在本包内,所以需要将age和name的修饰符改为protected,使其对子类可见第二个问题2楼回答了
      

  8.   

    因为你在方法外面中没有new出儿子来··你就不能访问··你在方法内把儿子new出来了·就可以访问了·
      

  9.   

    这个,其实在方法中真的不用new出一个A也可以访问A中成员变量的,因为B继承了A
      

  10.   

    extendes 关键字错 , 是extends