//  extends子类方法提示class bb
{
    public int b = 10;
public void dd()
{
   System.out.println("BB  dd");
}
}public class aa extends bb
{
private static int a[] = {1, 2};
public int b = 20;//*  ?? static  // 无法替代, 错在哪里?  静态块, 用于初始化
{
System.out.println("静态块, 用于初始化: ");
a = new int[2];
a = new int[20];
     a[0] = 30;
     a[1] = 40; 
     b = 20;   
    }*/
public static void display()
{
    System.out.println("static void display: ");
for (int i = 0; i < a.length; i++) 
    {
     System.out.println(a[i]);
    }
    
     System.out.println("a[1]  "+a[1]);
    }
    
    public static void main(String args[])
    {
     System.out.println("aa.display");  
aa.display();  
System.out.println("类似与main, 静态方法直接可用"+'\n');

     aa a = new aa();
     System.out.println("aa.display");
     a.display();  // 类中方法调用
     a.dd();  // 本类中没有, 到父类中查找  
    }
}

解决方案 »

  1.   

    问题C://  创建一个继承类class A
    {
    public A()
    {
    System.out.println("A 构造");
    }
    public void display()
    {
         System.out.println("AAAAA");
        }
    }class B extends A
    {
    public B()
    {
    System.out.println("B 构造");
    }
    public void display()
    {
         System.out.println("BBBBB");
        }
          
        public void dis()
        {
         this.display();
         super.display();    
        }
    }public class Foo
    {
    public static void main(String[] args)
        {
         A b = new B();  // 创建父类指针创建子类
         
         b.display();
         b.dis();  // 为何出错, 这是class B的方法呀 ??
        }
    }
      

  2.   

    1,   equals与等号判断: ==判断内存地址, equals是Object 的方法,默认也是判断内存地址,
    但你想怎么个判断法,那你在你自己的类里重写。系统类一般都重写了这个方法
    2,  A b = new B(); 虽然b指向了类B的实例,但编译器还是认为b为类A的一个引用,
         可以这样强行转换:((A)b).dis();
      

  3.   

    1。补充一下:一般来说(设计目标) == 判断值相等,equals是判断逻辑相等。
      

  4.   

    推荐看一下 practical java,说的很详细
      

  5.   

    问题A:  assert b == true;  // ??  这句话有何作用?  中的assert有何用途.
    问题B:  已解决.((B)b).dis();  // error:  (A(b)).dis();  ((A)b).dis();  (A(b)).dis(); 
    问题C:  如何用静态块代替初始化.
      

  6.   

    断言 b此时应该为true,否则抛出断言错误,程序终止static{
       //静态初始化
    }