首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

高手给就是一下 一句代码的意思

2012-03-05 
高手给就是一下 一句代码的意思在线等abstractclassOver{abstractpublicvoidfun1()}classOouter{publicst

高手给就是一下 一句代码的意思 在线等
abstract   class   Over{
abstract   public   void   fun1();
}
class   Oouter   {
public   static   void   main(String   []   args){

  class   Iinner   extends   Over{
public   void   fun1(){
System.out.println( "implement   for   fun1 ");
}
}
  new   Oouter().callIinner(new   Iinner());
}
public   void   callIinner(Over   o){
o.fun1();
}
}


这个代码中public   void   callIinner(Over   o){
o.fun1();
这句小括号中的定义是怎么理解的     那个Over是个类啊   怎么还能定义一个O呢百思不得其解   忘高手讲解一下   能给个例子就更好了     先谢谢了!

[解决办法]
Over o 参数撒, 传递一个 Over 类型的 对象 o ,
new Oouter().callIinner(new Iinner()); 这里面的new Iinner()的类型必须是 Over
[解决办法]
向上转型
[解决办法]
类和接口也可以用来声明类变量 传进去的参数必须是实现了该类的对象 或者是该类的子类的对象 或者是实现了该接口的类的对象
[解决办法]
我也不是很理解,可不可以说明白些?
[解决办法]
Over 是你上面自定义的类型,即
abstract class Over{
abstract public void fun1();
}

其实你可以将自定义类型当作内置类型一样,只不过,内置类型是系统自带的
而自定义类型是自己定义的而已。
[解决办法]
多态性使得基类的指针可以指向继承类
因为内部类new inner 继承了Over这个类
所以o可以指向inner的实例变量
由运行时刻绑定来决定具体调用哪个继承类中的方法
[解决办法]
参数列表,同(String name), Over是参数类型,o 是参数名称
[解决办法]
学习中
[解决办法]
public void callIinner(Over o){...}中 Over o 是传入的参数

我们在调用这个方法的时候,传入的参数必须是继承 Over 类的子类对象,
比如:

public class OverImp extends Over {...} // 继承Over的类

// 下面调用callIinner(Over o)方法
Oouter outer = new Oouter(); // 初始化类Oouter
OverImp overImp = new OverImp(); // 初始化类OverImp

outer.callIinner(overImp); // 注意传入的参数,是继承Over的类OverImp的对象

热点排行