当前位置: 代码迷 >> Java相关 >> 关于抽象类,继承,下转型的使用
  详细解决方案

关于抽象类,继承,下转型的使用

热度:940   发布时间:2013-02-25 21:44:57.0
关于抽象类,继承,上转型的使用
abstract class A{
  public abstract void f(int x);
  public abstract void g(int x,int y);
  public abstract double h(double x);
}

class a extends A{
  public void f(int x){
  System.out.println("在a中,f()");
  }
  public void g(int x ,int y){
  System.out.println("在a中,g()");
  }
  public double h(double x){
  System.out.println("在a中,h()");
  return 0;
  }
}
public class f2{
  public static void main(String args[]){
  A p; 
  p=new a();  
  p.f(1);
  p.g(1,1);
  p.h(1);
  }
}
可以编译,运行卜了.求解

------解决方案--------------------------------------------------------
你的a跟A可能会有点问题,把a改成别的字母吧
------解决方案--------------------------------------------------------
我还以为是java区分大小写是可以的,试了一下,还真不行
Java code
abstract class A{  public abstract void f(int x);  public abstract void g(int x,int y);  public abstract double h(double x);}class B extends A{  public void f(int x){  System.out.println("在B中,f()");  }  public void g(int x ,int y){  System.out.println("在B中,g()");  }  public double h(double x){  System.out.println("在B中,h()");  return 0;  }}class f2{  public static void main(String args[]){  A p;    p=new B();     p.f(1);  p.g(1,1);  p.h(1);  }}
------解决方案--------------------------------------------------------
Windows 文件系统的文件名不区分大小写,编译之后A跟a生成的.class文件只能剩一个,所以执行的时候报找不到class文件错误。

  相关解决方案