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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

假设 一个抽象类里有三个方法,,   子类继承后,一定要把三个方法都复写吗?  我只复写了两个,然后就去new对象 可不可以直接用?

假设 一个接口里有三个方法, 子类实现后,一定要把三个方法都复写吗?我只复写两个,然后就去new 对象 可不可以直接用???

假设 一个接口里有两个方法, 我用子类实现,覆盖了两个方法, 然后又添加了自己的其他方法,然后再去new对象 这样可以用吗?

简单说就是 子类如果继承抽象类,或者实现接口,必须要全部复写方法吗?

9 个回复

倒序浏览
  1. public class Demo{
  2.         public static void main(String[] args)
  3.         {
  4.                 Cat m = new Cat();
  5.                 m.eat();  m.run();
  6.                
  7.         }

  8. }
  9. interface Animal
  10. {
  11.         public abstract void eat();
  12.         public abstract void show(); //定义一个抽象的show方法

  13. }

  14. class Cat implements Animal
  15. {
  16.         public void eat() //实现接口中的一个方法
  17.         {
  18.                 System.out.println("eat");
  19.         }
  20.         public void run() //自己重新定义一个方法  并且接口中另外一个show方法没有进行show(){} 实例化
  21.         {
  22.                 System.out.println("run");
  23.         }

  24. }
复制代码



这串代码 我只实现了接口里一个方法, 然后自己又新定义了一个其他方法,最后是可以运行的
到底用不用把所有方法全覆盖啊?
回复 使用道具 举报
抽象类中的非抽象方法不用重写,其他抽象方法必须重写,接口里的方法必须重写。你上面的代码我放入eclipse编译无法通过的,直接报错,必须实现接口里的所有方法
回复 使用道具 举报
这种问题你多看看视频就知道了。
回复 使用道具 举报
前面两个不可以直接用,因为你根本没办法new对象呀
回复 使用道具 举报
艺多不压身丶 发表于 2015-3-25 14:23
这种问题你多看看视频就知道了。

哦。  呵呵~
回复 使用道具 举报
翰墨 中级黑马 2015-3-26 08:18:30
7#
    抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。                                                                                                                              接口不可以创建对象,因为接口中有抽象方法,需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类
回复 使用道具 举报
你代码里接口的show方法必须要覆写吧
回复 使用道具 举报
第一个问题:不可以! 如果您没有覆盖完全部抽象方法就一定还要到class前补抽象,有抽象就不可以new。第二个一样不可以! 第三个只要把父类全部复写了,就可以了
回复 使用道具 举报
那个叫艺多不压身的真的很讨厌~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马