public  class Max extends MaxTest
{
public  void intCompare(int a,int b)
{
if (a<b)
{
System.out.println(a);
}
else
System.out.println(b);
}

 public void intCompare(double c,double d)
{
if (c<d)
{
System.out.println(c);
}
else
System.out.println(d);
}
public static void main(String []args)
{
Max m = new Max();
m.intCompare(5,6);
m.intCompare(5.0,6.0);
}
}
public abstract class MaxTest
{

abstract void intCompare();
}
大家请看看这个程序
子类也要命名为抽象的吗?
编辑出现下面错误
Max.java:29: 类 MaxTest 是公共的,应在名为 MaxTest.java 的文件中声明
Max.java:1: Max 不是抽象的,并且未覆盖 MaxTest 中的抽象方法 intCompare()

解决方案 »

  1.   

    第一:一个YourName.java里只能有一个public的class(但可以声明其它的class)并且这个public的class的名字必须和YourName.java同名(也就是YourName);
    第二:从一个抽象类继承,如果不实现该抽象类的抽象方法则该子类也必须声明为抽象的,因为它继承了抽象的方法声明.如果不声明为抽象的,则必须实现它;
    public  class Max extends MaxTest
    {
    public void intCompare(){};//空实现即可
    public  void intCompare(int a,int b)
    {
    if (a<b)
    {
    System.out.println(a);
    }
    else
    System.out.println(b);
    }

     public void intCompare(double c,double d)
    {
    if (c<d)
    {
    System.out.println(c);
    }
    else
    System.out.println(d);
    }
    public static void main(String []args)
    {
    Max m = new Max();
    m.intCompare(5,6);
    m.intCompare(5.0,6.0);
    }
    }
    abstract class MaxTest//去掉public标识
    {

    abstract void intCompare();
    }
      

  2.   

    同意楼上的观点。
    1.在一个.java文件中只能有一个public(公有的) class 这个public(公有的) class必须和你的.java文件同名。即Max
    (public)错误 abstract class MaxTest{  abstract void intCompare();}
    2.Max类继承了MaxTest类 就必须实现MaxTest类中的抽象方法。
    只要加上
    public  void intCompare(){
    }
    就可以了。