java所有的方法都是虚函数。
将B定义为A的内部类好了。你为什么要这样啊?变量都可以通过方法访问好了,定以为private,这样封装好啊!

解决方案 »

  1.   

    Java里面没有虚函数这个概念!
      

  2.   

    你好像有两个问题:
    1.如何定义需函数:
      java中所有方法可以认为都是虚函数,即子类会覆盖(重写)父类的方法.比如:
      class A{
       protected String name = "A";
       public void f(){System.out.println("A");};
      }
      class B extends A{
       public void f(){
          name = "B";
          System.out.println("B")};  
      }
      A obj = new B();
      obj.f();//调用B类的方法.2.关于protected关键字.
      A a = new A();
      String strTemp = a.name;//这不可以访问的.  protected在类和子类的内部相当于public,而在类的外部相当于private.所以a.name是不可以被访问的.
      

  3.   

    一句话,如果你学习过 C++.Java 中所有没有指明 final 的函数都是虚函数.
    C++  中的虚函数必须要明确指明.
      

  4.   

    前两天没上CSDN!看完上面的答复,再有两个问题:1.抽象函数是怎样定义的,不是象接口一样定义吧?
    2.对于protected,刚试过,在同一个包里面,无论这个包中的类C是不是extends这个父类,在类C中用 A a = new A();的a也可以访问protected的变量,而不同的包中,就不可以访问,是不是这样的?
     
      

  5.   

    定义抽象函数是不写函数体,在函数前加上abstract
      

  6.   

    对,protected 是包内和子类可见的