//FindErrors.java
class Find
{
public int i;
public void f()
{
System.out.println("Find.f()");
};
}
class NewFind extends Find
{
public void f(){System.out.println("NewFind.f()");}
public void f1(){System.out.println("NewFind.f1()");}
public void f(long i){this.i=(int)i;}
}
class FindErrorsA extends Find
{
public void f2(Find ff)
{
if(ff instanceof NewFind)
{
((NewFind)ff).f1();
ff.f();
}
}
}
public class FindErrors
{
public static void main(String args[])
{
Find nf=new FindErrorsA();
((FindErrorsA)nf).f2(nf);
}
}好不容易!拿去用!
class Find
{
public int i;
public void f()
{
System.out.println("Find.f()");
};
}
class NewFind extends Find
{
public void f(){System.out.println("NewFind.f()");}
public void f1(){System.out.println("NewFind.f1()");}
public void f(long i){this.i=(int)i;}
}
class FindErrorsA extends Find
{
public void f2(Find ff)
{
if(ff instanceof NewFind)
{
((NewFind)ff).f1();
ff.f();
}
}
}
public class FindErrors
{
public static void main(String args[])
{
Find nf=new FindErrorsA();
((FindErrorsA)nf).f2(nf);
}
}好不容易!拿去用!
少了 ;
public void f(){System.out.println("NewFind.f()");}
public void f1(){System.out.println("NewFind.f1()");}
是死循环,而且没有创建实例
不应该有两个public class FindErrors
把两个的public class FindErrors 合并
f2(nf);应该改成nf.f(); //愈发也错,而且NewFind里面没有f2这个函数
if(ff instanceofNewFind) instanceof NewFind
public void f(long i){this.i=i;} this.i是int, i是long,溢出错误static main(...
太多错误了哦!!!
Thinking In java这本书,对于多态性,兄弟我只能说你还没入门
入门前千万别在说什么OO的了,别人听着会笑的还有兄弟你 gularess(无吃哪拉) ,你以为 ((NewFind)ff).f1();
这样就行了阿,看样子对于造型你也没入门,赶快回去好好学学吧
{
public int i;
public void f()
{
System.out.println("Find.f()");
}
}
public class NewFind extends Find
{
public void f(){System.out.println("NewFind.f()");}
public void f1(){System.out.println("NewFind.f1()");}
public void f(long i){this.i=(int)i;}
}
public class FindErrors extends Find
{
public void f2(Find ff)
{
if(ff instanceof NewFind)
{
// ff.f1();//这句只能注释掉,为什么自己看书。或者要么这么写
/*
public void f2(NewFind ff)
{
if(ff instanceof NewFind)
{
ff.f1();
ff.f();
}
}
*/
ff.f();
}
}
public void main(String args[])
{
NewFind nf=new NewFind();
f2(nf);
}
}
{
public int i;
public void f()
{
System.out.println("Find.f()");
}
}
public class NewFind extends Find
{
public void f(){System.out.println("NewFind.f()");}
public void f1(){System.out.println("NewFind.f1()");}
public void f(long i){this.i=(int)i;}
}
public class FindErrors extends Find
{
public void f2(Find ff)
{
if(ff instanceof NewFind)
{
// ff.f1();//这句只能注释掉,为什么自己看书。或者要么这么写
/*
public static void f2(NewFind ff)
{
if(ff instanceof NewFind)
{
ff.f1();
ff.f();
}
}
*/
ff.f();
}
}
public static void main(String args[])
{
NewFind nf=new NewFind();
f2(nf);
}
}