黑马程序员技术交流社区

标题: 一个小问题 [打印本页]

作者: 李宁    时间: 2013-1-20 23:20
标题: 一个小问题
本帖最后由 shaohuashang 于 2013-1-21 10:45 编辑

  1. public class Test extends Test2{
  2.         public static void main(String[] args) {
  3.                 Test t =new Test();
  4.                 t.sop();
  5.         }
  6.         public void sop(){
  7.                 System.out.println("override");
  8.         }
  9. }

  10. public abstract class Test2 {
  11.         
  12.         Test2(){
  13.                 System.out.println("abc");
  14.         }
  15.         abstract void sop(){};
  16. }
复制代码
大家帮忙看看,为什么运行时会报错?
不好意思,发之前也没修改好
作者: 柴乔军    时间: 2013-1-20 23:24
楼主,你把错误贴出来嘛,你这Test继承的是Test2类???可这个类在哪??
下面的是Test3呀。。。
作者: 贾文泽    时间: 2013-1-20 23:24
别的代码呢?  Test2呢?
作者: txl    时间: 2013-1-20 23:27
本帖最后由 黑马唐贤来 于 2013-1-20 23:29 编辑

我想你把test2是不是test3?是不是打错了,已经可以运行了


  1. public class Test extends Test3{

  2. public static void main(String[] args) {

  3. Test t =new Test();

  4. t.sop();

  5. }

  6. public void sop(){

  7. System.out.println("override");
  8. }

  9. }



  10. abstract class Test3 {



  11. Test3(){

  12. System.out.println("abc");

  13. }

  14. abstract void sop();            //我只是删除了这里的大括号就正常了......

  15. }

复制代码

作者: 贾文泽    时间: 2013-1-20 23:28
还有,你的抽象方法怎么是  abstract void sop(){};   ???
抽象方法是没有方法体的  abstract void sop();  使用必须由子类复写抽象方法后建立子类对象调用

作者: yong230    时间: 2013-1-21 09:22
abstract void sop();//这样写才对,抽象方法没有方法体
作者: 黑马-周科    时间: 2013-1-21 10:30
abstract void sop(){}; 没有方法体。

正确写法

abstract void sop();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2