簡體   English   中英

如何從另一個類調用方法?

[英]How to call a method from another class?

public class ClassOut {

    abstract class ClassIn {

        int x = 20;

        public void print() {
            System.out.println("value = " + getX());
        }

        public abstract int getX();
    }
}

如何從另一個類調用方法print()

如果抽象是一個獨立的類(不是內部類),則可以簡單地對其進行擴展

public class MineClass extends Classin {

   // implement getX
}

那么你可以稱它為

new MineClass().print();

這很簡單。 當您擁有一個抽象類時,您將需要一個具體的類來對其進行擴展,從而可以@override子類中的print()方法,例如:

class ClassInChild extends ClassIn {
    @override
    public void print() {
        System.out.println("new value = " + getX());
    }

    // mandatory because it is abstract
    @override
    public int getX() {
        return 5;
    }
 }

 ClassIn classIn = new ClassInChild();
 classIn.print();

如果一切正常,您應該收到new value = 5作為響應。

實例化抽象類是不可能的,您必須對其進行子類化才能使用其非靜態字段和方法。

new ClassOut().new ClassIn(){
    public int getX() {
         return 1; 
    }
}.print();

在這里,我完成了內部抽象類的匿名實現,以創建它的實例並調用實例方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM