java接口有非抽象方法_如果一个类没有实现Java接口的所有抽象方法,会发生什么?...
Java中的接口類似于類,但是它只包含final和static的抽象方法和字段。
在單獨的類中,您需要實現此接口并為其所有抽象方法提供主體。
使用類實現接口后,必須向其所有抽象方法提供主體(實現),或者應將類聲明為抽象。如果您不這樣做,則會為每個未實現的方法生成一個編譯時錯誤,提示“ InterfaceExample不是抽象的,并且不會在interface_name中覆蓋抽象方法method_name”。
在下面的Java程序中,我們有一個名為MyInterface的接口和3個抽象方法,以及一個實現此接口的類,名為InterfaceExample。
在該類中,我們僅提供一種抽象方法(display())的主體。
示例import?java.util.Scanner;
interface?MyInterface{
public?void?display();
public?void?setName(String?name);
public?void?setAge(int?age);
}
public?class?InterfaceExample?implements?MyInterface{
int?age;
String?name;
public?void?display()?{
if(18?
System.out.println("Hello?"+this.name+"?welcome");
}?else?{
System.out.println("Under?age");
}
}
public?static?void?main(String?args[])?{
}
}
編譯時錯誤
在編譯上面的程序時會產生以下錯誤
輸出結果InterfaceExample.java:7:?error:?InterfaceExample?is?not?abstract?and?does?not
override?abstract?method?setAge(int)?in?MyInterface
public?class?InterfaceExample?implements?MyInterface{
^
1?error
要使該程序正常工作,您需要在類中實現所有抽象方法,或者聲明類abstract,如下所示-
示例import?java.util.Scanner;
interface?MyInterface{
public?void?display();
public?void?setName(String?name);
public?void?setAge(int?age);
}
public?class?InterfaceExample?implements?MyInterface{
int?age;
String?name;
public?void?display()?{
if(18?
System.out.println("Hello?"+this.name+"?welcome");
}?else?{
System.out.println("Under?age");
}
}
public?void?setName(String?name){
this.name?=?name;
}
public?void?setAge(int?age){
this.age?=?age;
}
public?static?void?main(String?args[])?{
Scanner?sc?=?new?Scanner(System.in);
InterfaceExample?obj?=?new?InterfaceExample();
System.out.println("輸入名稱:");
obj.setName(sc.next());
System.out.println("輸入年齡:");
obj.setAge(sc.nextInt());
obj.display();
}
}
輸出結果輸入名稱:
Krishna
輸入年齡:
25
Hello?Krishna?welcome
總結
以上是生活随笔為你收集整理的java接口有非抽象方法_如果一个类没有实现Java接口的所有抽象方法,会发生什么?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java hashmap 添加_JAVA
- 下一篇: java 二进制反码_Java学习第五篇