![](/img/trans.png)
[英]How to design a common static method in all classes implementing an interface
[英]A class implementing common method of interface
只有一個問題讓我感到困惑...有兩個接口A,B包含相同的方法methodC()...,而C類實現了A&B。 應該采用哪種接口方法A或B
現在,根據我的分析,我會在課下說。
interface A {
/**
* Doc A
* **/
public void MethodA();
public String MethodB();
}
interface B {
/**
* Doc B
* **/
public String MethodA();
public void MethodB();
}
class lucy implements A,B{
@Override
public String MethodA() {
//To change body of implemented methods use File | Settings | File Templates.
return null;
}
@Override
public String MethodB() {
//To change body of implemented methods use File | Settings | File Templates.
return null;
}
}
輸出:
你好你好
假設我們有一個接口:
public interface A {
public void firstMethod();
public void secondMethod();
}
和這個界面:
public interface B {
public void firstMethod();
public void secondMethod();
}
如果創建一個實現了這兩個接口的類,它將被編譯並正常運行。
public class MyClass implements A, B {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
@Override
public void firstMethod() {
// some code here
}
@Override
public void secondMethod() {
// some code here
}
}
但是,如果將方法firstMethod()
和secondMethod()
到MyClass
但返回類型不同,則它將無法編譯。
public class MyClass implements A, B {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
public String firstMethod() {
return "";
}
public String secondMethod() {
return "";
}
@Override
public void firstMethod() {
// some code here
}
@Override
public void secondMethod() {
// some code here
}
}
編寫方法簽名Java使用方法參數,但不使用返回類型。 並會導致“方法已定義”錯誤。 因為從Java的角度來看,方法: void firstMethod();
和String firstMethod();
(與secondMethod()
方法相同)具有相同的簽名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.