A. java介面 可以用實現類的構造方法嗎
1 如果在子類中調用 ,那麼先new 一個參數所在類型的對象a,即 A a = new A(),然後在子類中用super(a)就可以調用父類的帶類參數構造方法。
2 如果在其他類中調用,那麼也需要先new 一個參數所在類型的對象a,即 A a=new A();,然後new調用類的的時候把參數傳進去就可以了,B b = new B(a)。
B. java 介面調用介面方法 實現的是哪個方法 是實現介面的類的方法嗎 如果實現的類有多個呢
調用的不是介面也不是類的方法,而是對象的方法
舉個例子List
a
=
new
ArrayList();
a.add(...);//調用的不是List介面的回方法,答也不是ArrayList類的方法,
而是new
ArrayList()所得到的對象的方法。而這個對象是ArrayList這個類的一個實例
C. JAVA框架如何實現調用介面的實現類的呢例實現httpsessionlistener介面類被調。
將HttpSessionListener介面的實現類配置在web.xml中,伺服器啟動時會自動調用
D. java介面對象如何調用實現類自己的方法
肯定是不能調用的. . 必須要在介面裡面寫下的這個方法的規范...
介面是用來定義規范的. ..
E. java 介面與實現類是怎麼關聯起來的
在你生命類的時候會調用初始化的構造函數,
具體實現為:介面 引用=new 實現類()內方式容
如:Studentservice studentservice=new Studentserviceimlp()
這樣在時候介面studentservice時,使用的就是Studentserviceimlp類了。
F. java 類怎麼調用介面實現類
直接寫成Person p = new Student();即可 這是為了讓買你代碼的人看不到內部代碼 怎麼實專現的被隱藏了
1.Java的多態屬性 就是多種變現形式 介面跟實現類都能完成同樣的功能
2.隱藏內部代碼塊 人家只知道用p能調用Student的功能但是不知道你 Student類是怎麼實現的
3.解耦合性 Java的介面多繼承
G. JAVA 將介面的引用指向實現類的對象
有一個很簡單的例子,java.util中的類ArrayList實現了介面List則生成ArrayList對象時可用以下語句.
List list=new ArrayList();
也就是說所有實現了介面List的類,都可以用List介面來聲明對象類型,然後用實體類進行實例化.這表明了介面可以用來作為類型的表述.當然,生成的對象list只能調用介面List中提供的方法.
同樣的操作也可以用在父類與子類身上,例如設A類是B類的父類
則創建B類對象的時候可以用以下語句
A b=new B();
這樣的用法可以大大提高編程的靈活性.~
H. JAVA種用一個類去調用一個介面的多個實現類
如果介面的實現類有很多,那麼你可以像下面這樣,把所有實現類的類名在一個地方定回義。可以答是一個property文件, 可以是資料庫,也可以直接寫在代碼里。也可以用工廠模式,也可以用代理,spring等等,方法很多,就不一一列舉了。。。
public class Car {
public static void main(String[] args) throws Exception{
List<String> classList = new ArrayList<String>();
classList.add("Car1");
classList.add("Car2");
for(String className : classList) {
Carinterface car = (Carinterface) Class.forName(className).newInstance();
System.out.println(car.getName() + " : " + car.getPrice());
}
}
}
I. Java通過介面調用方法的時候,怎麼知道調用的是哪個實現類里的方法
你說的是spring框架吧,調用方法是調用介面的方法,想知道最終怎麼調用到實現類里的方法吧?是通過控制反轉實現的,通過客戶類運行上下文環境或專門組件負責實例化服務類,最終保證客戶類的正常使用。
J. Java關於介面引用實現該介面類的對象
介面是抽象的,用來解耦最適合。而且可以發揮多態的優勢。
給你舉個例子
interface
A
{
void
run();
}
class
B
implements
A{
void
run()
{
System.out.println("我是B");
}
}
class
C
implements
A{
void
run()
{
System.out.println("我是C");
}
}
如果你這么寫:
A
a
=
new
B();
a.run();//這里列印出「我是B」,如果前面new的是C這里就列印出「我是C」。
所以這個類就和B和C這2個類解耦,BC的改變都不會影響到你當前這個類。