【问题标题】:Why Class can not extends Interface in java? [closed]为什么类不能在java中扩展接口? [关闭]
【发布时间】:2016-11-26 16:29:05
【问题描述】:
interface a{
     public void getSum();

  }
public class b implements a{

     public void getDivision(){

     }
}

我们知道,但是 为什么类 b 不能扩展接口 a ? 什么原因?

【问题讨论】:

  • 它没有扩展它,它实现了接口。而且这段代码不会编译,因为b 没有getSum 方法。
  • 最好先学习OOP原理。
  • 另外,public void getDivission(); 不是类的有效代码!!
  • 另外...如果函数以get 开头,它可能应该返回一些东西而不是无效。它没有必须,但如果没有,就会非常混乱。
  • 我的问题是,为什么类不能扩展接口?

标签: java inheritance interface


【解决方案1】:

为什么类B不能扩展接口A?是什么原因?

类不能扩展接口,因为从类继承 (extends) 和实现接口 (implements) 是两个不同的概念。

因此,他们使用不同的关键字。

扩展类(继承)

当你扩展一个类时,你继承了它的所有字段和方法。

例如:

public class A {
    void runInheritedMethod() {
        System.out.println("Hello");    
    }
}

public class B extends A {
}

public class Main {
    public static void main(String[] args) {
        // This is valid code...
        B bInstance = new B();
        bInstance.runInheritedMethod();
    }
}

实现接口

当您实现一个接口时,您的类将包含该接口所有未实现功能的“主体”或“实现”。

例如:

public interface Choppable {
    public void chop();
}

public class Wood implements Choppable {
    public void chop() {
        // Your wood-specific code here...
    }
}

public class Carrot implements Choppable {
    public void chop() {
        // Your carrot-specific code here...
    }
}

这两个概念都可以用来实现polymorphic behaviour,这就是为什么它们会引起混淆。

【讨论】:

    猜你喜欢
    • 2012-11-06
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2010-12-10
    • 2013-09-22
    相关资源
    最近更新 更多