A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李宁 中级黑马   /  2013-1-20 23:20  /  1664 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码
大家帮忙看看,为什么运行时会报错?
不好意思,发之前也没修改好

6 个回复

倒序浏览
楼主,你把错误贴出来嘛,你这Test继承的是Test2类???可这个类在哪??
下面的是Test3呀。。。
回复 使用道具 举报
别的代码呢?  Test2呢?
回复 使用道具 举报
本帖最后由 黑马唐贤来 于 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. }

复制代码
回复 使用道具 举报
还有,你的抽象方法怎么是  abstract void sop(){};   ???
抽象方法是没有方法体的  abstract void sop();  使用必须由子类复写抽象方法后建立子类对象调用
回复 使用道具 举报
abstract void sop();//这样写才对,抽象方法没有方法体
回复 使用道具 举报
abstract void sop(){}; 没有方法体。

正确写法

abstract void sop();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马