導航:首頁 > 編程語言 > java內部類介面

java內部類介面

發布時間:2022-06-13 14:07:54

java內部類和介面都可以實現多重繼承,但是什麼時候用那種呢

樓主,你好。
我們先拋開代碼的重寫不談,先談一下設計,你認為合理嗎,一個類繼承兩個介面,兩個介面中居然有一相同的方法,那麼這個介面的抽象就出現問題了。所以你這個題僅僅是作為一個理論層次的討論,實際中並不會出現。
其次,就這個問題來說,也許我們在一個實現類中確實就寫了一段print()方法,結果運行確實通過了,也不報錯了,但是樓主我們細想一下,我們達到目的了嗎?這是我們想到的嗎?答案是no,兩個不同的介面,就應該有不同的業務邏輯,怎麼能用一個方法去歸並兩個呢?那我們為什麼不抽象成一個方法呢?好,這樣就回到了我前面說的,屬於設計問題了。
呵呵,就這樣。希望樓主能看透這點,在深究不放,那就是不好啦。

Ⅱ Java匿名內部類可以實現介面嗎

匿名內部類可以用於介面上,只要一個類是抽象的或是一個介面,那麼其子類中的方法都可以使用匿名內部類來實現。最常用的情況就是在多線程的實現上,因為要實現多線程必須繼承Thread類或是繼承Runnable介面。
具體示例代碼如下:
interface
Person
{
public
void
eat();
}
public
class
Demo
{
public
static
void
main(String[]
args)
{
Person
p
=
new
Person()
{
public
void
eat()
{
System.out.println("eat
something");
}
};
p.eat();
}
}
運行結果:eat
something

Ⅲ 關於JAVA內部類向上轉型為介面的問題(第十行)

你的InnerClass 是private 的,在其它類的作用域裡面是不能訪問InnerClass 內部的函數的。

你把private 改成public 就好了,或者在OuterClass2中添加專門的方法調用該內部類的f方法

Ⅳ java介面內部類

package com.clark.app;

/**
* Created with IntelliJ IDEA.
* User: clark
* Date: 13-10-9
* Time: 下午12:07
*/
public class QuestionMain implements ITest{
public static void main(String[] args) {
ITest.TestInternal.test(new QuestionMain());
}

@Override
public void print() {
System.out.println("真正實現方法");
}
}

interface ITest {

void print();

public static class TestInternal {
public static void test(ITest test) {
test.print();
}
}
}

Ⅳ java 為什麼匿名內部類需要介面請詳細基礎一點,只是初學者。

new語句聲明一個新的匿名類,它對一個給定的類進行擴展,或者實現一個給定的介面。它還創建那個類的一個新實例,並把它作為語句的結果而返回。要擴展的類和要實現的介面是new語句的操作數,後跟匿名類的主體

Ⅵ java 內部類 為什麼可以實現介面

這是面向對象編程的特性決定的
以java為例:
既然是匿名內部類,它首先是一個類。所有的類都是繼承自Object的,你實現的匿名類,也就需要繼承某個類。如new Button(){}
實現介面也是一種匿名類聲明的方法,因為你實現的介面是默認繼承Object類的,比如new Runnable(){}

Ⅶ java 內部類 和介面問題

你好,看這兩句代碼。
B b = new B(); //這句好理解吧。就是創建類B的一個實例對象b
b.test();//關鍵看這句,調用test方法。
1. 調用test方法
2. 執行this.get(new C()) ; //這句就會調用類B中的get方法,因為C是介面A的實現類,因此可以做為參數傳遞進去。
3. 根據多態性,執行new C().fun1() ;
4.所以會列印出10

Ⅷ java內部類介面問題

Machine 和 MachineHeart 的關系是 MachineHeart is a Machine
凡是在本來需要Machine的地方都可以使用MachineHeart
getMachine()的返回類型是Machine,返回MachineHeart當然是可以的,而且必須也只能是一個實現的Machine的類的實例.因為介面無法直接創建對象
實現介面和繼承(extends)很相似

一句話:父類的引用可以指向子類實例 (這是多態的基礎)

Ⅸ JAVA內部類使用,什麼時候該使用內部類及使

java中的內部類和介面加在一起,可以的解決常被C++程序員抱怨java中存在的一個問題 沒有多繼承。

每個內部類都能獨立的繼承自一個(介面的)實現,所以無論外圍類是否已經繼承了某個(介面的)實現,對於內部類都沒有影響。

1.內部類繼承

因為內部類的構造器必須連接到指向其外圍類對象的引用,所以在繼承內部類的時候使用特殊語法。問題在於,指向外圍類對象的引用必須被初始化,而在導出類中不存在可連接的默認對象。所以必須要用特殊語法來明確說清楚他們之間的關聯。

[java]view plain

閱讀全文

與java內部類介面相關的資料

熱點內容
androidflipboard 瀏覽:878
投資公司投資源碼 瀏覽:74
python語料訓練 瀏覽:338
武夷岩茶產地溯源碼 瀏覽:383
求生組隊用什麼伺服器最好 瀏覽:24
php回調匿名回調函數 瀏覽:107
源碼翻譯軟體哪裡找 瀏覽:523
邪惡程序員解說 瀏覽:600
醫生找程序員 瀏覽:423
cad三維剖切命令 瀏覽:55
壓縮機的氣能流多遠 瀏覽:85
linuxfdiskt 瀏覽:696
iphone沒有id怎麼用app 瀏覽:983
手機淘寶網站源碼 瀏覽:743
小車上的壓縮機怎麼改氣泵 瀏覽:568
免費雲伺服器任務 瀏覽:211
蘋果怎樣在手機上做壓縮文件 瀏覽:644
如何搭建sslvpn伺服器 瀏覽:33
php鏡像程序 瀏覽:7
linux變數命名 瀏覽:157