黑马程序员技术交流社区

标题: 关于接口与抽象类的问题 [打印本页]

作者: 星辉祝愿    时间: 2015-5-28 16:39
标题: 关于接口与抽象类的问题
本帖最后由 星辉祝愿 于 2015-5-28 17:04 编辑

子类继承抽象类和子类实现的接口 都有public abstract int methor(); 那子类写了methor()覆盖方法,会不会有冲突啊?如果不冲突,那methor()是属于覆盖抽象类方法还是覆盖接口方法啊?

  1. public class test3  extends father2 implements face {

  2.         public int methor() {
  3.                 return 0;
  4.         }

  5. }

  6. interface face{
  7.         public int methor();
  8. }

  9. abstract class father2{
  10.         public abstract int methor();
  11. }
复制代码




作者: 石头888    时间: 2015-5-28 16:40
学习学习!
作者: 黯然残影    时间: 2015-5-28 18:24
接口的。
作者: lucien_he    时间: 2015-5-28 18:32
接口!  实现接口就必须实现接口方法啊!!
作者: mmakun    时间: 2015-5-28 18:52
接口也没有函数体,覆盖哪一个都没什么区别
作者: 白马黑马    时间: 2015-5-28 19:22
接口的,接口就是用来复写的,而且是必须呀。写了这个method方法就是接口的
作者: wwb1105    时间: 2015-5-28 19:37
接口就是用来复写的
作者: zhousuo28    时间: 2015-5-28 22:00
接口,接口的抽象方法必须要被重写吧
作者: bin2015    时间: 2015-5-28 23:16
本帖最后由 bin2015 于 2015-5-28 23:17 编辑

类如果实现了接口,必须实现接口的所有方法。不用把接口实现类也抽象,如过实现类也是抽象的那接口就没有意义了。
接口的作用:
       1. 程序的解耦。(低耦合)
       2. 定义约束规范。
      3. 拓展功能。


接口的特点:
        1. 类实现接口可以通过implements实现,实现接口的时候必须把接口中的所有方法实现,一个类可以实现多个接口。
        2. 接口中定义的所有的属性默认是public static final的,即静态常量既然是常量,那么定义的时候必须赋值。
       3.  接口中定义的方法不能有方法体。接口中定义的方法默认添加public abstract
       4. 有抽象函数的不一定是抽象类,也可以是接口类。
        5. 由于接口中的方法默认都是抽象的,所以不能被实例化。
        6. 对于接口而言,可以使用子类来实现接口中未被实现的功能函数。
       7. 如果实现类中要访问接口中的成员,不能使用super关键字。因为两者之间没有显示的继承关系,况且接口中的成员成员属性是静态的。可以使用接口名直接访问。
        8. 接口没有构造方法。


作者: 半世心修    时间: 2015-5-28 23:27
其实没必要钻这个牛角尖,接口是接口的,但是最终结果一点有区别么?
作者: 黑马生涯    时间: 2015-5-28 23:28
当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。
这个地方要用匿名内部类。
作者: 途中ms前进    时间: 2015-5-29 00:07
过来学习下
作者: 小车车    时间: 2015-5-29 18:41
不会有冲突。接口的!




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