JAVA中多态是这样表示的 Father f=new Son();
你代码中f1是Father类型的,s1是Son类型的。你代码中的赋值就报错罗。

解决方案 »

  1.   

    class Father{
    int x;
    public Father(int x){
    this.x=x;
    }
    public Father(){;}
    public int fun(){
    int f=0;
    for (int i=1;i<=x;i++)
    f=f+i;
    return f;
    }
    public int fun(int x){
    int f=1;
    for(int i=1;i<=x;i++)
    f=f*i;
    return f;
    }
    }
    class Son extends Father{
    public Son(int a){
    super();
    }
    public int fun(){
    int f=1;
    for(int i=1;i<=x;i++)
    f=f*i; 
    return f;
    }
    }
    public   class {
    public  static void main(String[] args){
    Father f1=new Father(5);
    Son s1=new Son(3);
    System.out.println(s1.fun());
    System.out.println(f1.fun());
    System.out.println(f1.fun(6));
    s1=f1;
    System.out.println(s1.fun());
    System.out.println(f1.fun());
    System.out.println(f1.fun(6));
    }
    }
      

  2.   

    Father.java文件名改为Pol_ex
    public class 后面的 类名  要和文件名一致
      

  3.   


    public class Pol_ex {
    public static void main(String[] args) {
    Father f1 = new Father(5);
    Father s1 = new Son(3);
    System.out.println(s1.fun());
    System.out.println(f1.fun());
    System.out.println(f1.fun(6));
    s1 = f1;
    System.out.println(s1.fun());
    System.out.println(f1.fun());
    System.out.println(f1.fun(6));
    }
    }Father s1 = new Son(3);
      

  4.   

    为什么一定要改文件名?改public class 后面的 类名就不行呢?
      

  5.   

    一个java文件中可以有多个Java类 
    但Java文件名必须与public的class同名
      

  6.   

    去掉public
      

  7.   

    因为你的Father.java里面有一个不是public的Father类了,也就是你里面已经有一个class Father,而文件名又是Father.java。所以你就得改文件名咯。原因是一个.java文件里面只能有一个public类,且这个类的名字要和文件名一样
      

  8.   

    因为你的Father.java里面有一个不是public的Father类了,也就是你里面已经有一个class Father,而文件名又是Father.java。所以你就得改文件名咯。原因是一个.java文件里面只能有一个public类,且这个类的名字要和文件名一样谢谢啦!现在改好啦!