Outer.function().study 应该是代表 子类对象调用study(), Person p = new Person(){} ;返回一个子类对象
当我 return p ; 为什么用父类Person接收,而且 还调用子类的study() ;
interface Person{
void study() ;
}
class Outer
{
public static Person function(){
Person p = new Person(){
public void study(){
System.out.println("study---java") ;
}
} ;
return p ;
}
}
class InnerClassDemo4
{
public static void main(String[] args)
{
Outer.function().study() ;
}
} 作者: 丑男先生。 时间: 2013-12-15 15:00
Peron p = new Stu();
必须保证你的子类里面的方法是重写了父类的方法,这样才可以调用。如果是子类独有的方法是不能调的。如果要调子类独有的方法有两种方式,Stu stu = new Stu();或者你上边的那种实例化后再向下转型。作者: 一年之后 时间: 2013-12-15 15:22