我在代码的接口部分做了什么错误?

时间:2013-11-24 05:57:08

标签: java interface

我是Java的初学者。我知道Interface的概念。接口主要用于实现完全抽象并支持多重继承的功能,然后松散耦合。

可以有抽象方法和静态常量。它不能像Abstract类那样实例化和类似。接口是类的蓝图,它代表Is-A-Relationship。

我自己刚尝试了这个示例程序:

interface Printable{
void print();
}
public class A implements Printable{
public void Print(){
    System.out.println("Prints..");
}
public static void main(String args[]){
    A obj=new A();
    obj.print();
}
}

输出是,

Compiling the source code....
$javac A.java 2>&1
A.java:4: error: A is not abstract and does not override abstract method print() in         Printable
public class A implements Printable{
^
A.java:10: error: cannot find symbol
obj.print();
^
symbol: method print()
location: variable obj of type A
2 errors

“A不是抽象的,不能覆盖抽象方法print()”是什么意思?

我在这里犯了什么错误?所以我可以从错误中吸取教训!

3 个答案:

答案 0 :(得分:4)

void print()

VS

void Print()

这是一个错误。

您收到错误

  

A不是抽象的,不会覆盖抽象方法print()

因为abstract类可以实现interface而不实际实现它定义的方法。

请参阅here

  

在Interfaces一节中,注意到实现接口的类必须实现所有接口的方法。但是,可以定义一个不实现所有接口方法的类,前提是该类被声明为抽象。

错误消息的另一部分来自上述“大写”错误。

答案 1 :(得分:0)

错误很明显

A.java:4: error: A is not abstract and does not override abstract method **print()** in         Printable

如您所见,该方法为print()而非Print()

答案 2 :(得分:0)

请检查您的Print()的拼写。它在接口

中是小写的
相关问题