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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. abstract class student
  2. {
  3. public abstract void study();
  4. public void sleep()
  5. {System.out.println("躺睡");}

  6. }
  7. class BaseStudent extends student
  8. {public void study()
  9. {System.out.println("base学习");}
  10. public void sleep()
  11. {System.out.println("坐睡");}
  12. }
  13. class Advsstudent extends student
  14. {public void study()
  15. {System.out.println("adcs学习");}

  16. }
  17. class duotaidemo
  18. {
  19. public static void main(String[] args)
  20. {BaseStudent as=new BaseStudent();
  21. as.study();
  22. as.sleep();
  23. Advsstudent ss=new Advsstudent();
  24. ss.study();
  25. ss.sleep();
  26. fangf(new BaseStudent());
  27. fangf(new Advsstudent());

  28. }

  29. public void fangf(Student ss)
  30. {
  31. ss.study();
  32. ss.sleep();


  33. }


  34. }
复制代码

提示的错误是无法从上下文中静态中引用非静态方法,我去,快疯了我

5 个回复

倒序浏览
如果按照老师说的把方法提取出来 还是会编译通过的 但是按照老师的不加static就通不过为什么 :dizzy:
回复 使用道具 举报
Student是一个抽象类啊。。。。不能作为参数传递啊。。。。。
回复 使用道具 举报 1 0
本帖最后由 yang9876q 于 2015-6-16 09:48 编辑

你这总共出现两种错误,一个是找不到Student(fangf方法的参数应该是student,而不应该是Student,因为你定义的是student类,小写的),一个是静态中引用非静态方法(错误原因:主函数是静态的,其调用的方法也应该是静态的,fangf方法你定义的是非静态的)。
正确程序如下:
  1. abstract class student
  2. {
  3. public abstract void study();
  4. public void sleep()
  5. {System.out.println("躺睡");}

  6. }
  7. class BaseStudent extends student
  8. {public void study()
  9. {System.out.println("base 学习");}
  10. public void sleep()
  11. {System.out.println("坐睡");}
  12. }
  13. class Advsstudent extends student
  14. {public void study()
  15. {System.out.println("adcs 学习");}

  16. }
  17. class duotaidemo
  18. {
  19. public static void main(String[] args)
  20. {BaseStudent as=new BaseStudent();
  21. as.study();
  22. as.sleep();
  23. Advsstudent ss=new Advsstudent();
  24. ss.study();
  25. ss.sleep();
  26. fangf(new BaseStudent());
  27. fangf(new Advsstudent());

  28. }

  29. public static void fangf(student ss)
  30. {
  31. ss.study();
  32. ss.sleep();


  33. }


  34. }
复制代码



回复 使用道具 举报 1 0
因为fangf是非静态方法吧
回复 使用道具 举报 1 0
大神们 为甚么把方法抽取出来 新建个类 就不用静态了,郁闷 上面的同学说的很有用 我支持你们了……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马