我是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()”是什么意思?
我在这里犯了什么错误?所以我可以从错误中吸取教训!
答案 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()的拼写。它在接口
中是小写的