簡體   English   中英

如何將Java類放入對象並使用它的方法

[英]How to put a java class in a Object and use it methods

將類放入對象很容易。 但是,當我嘗試在第36行對其執行方法時: aClass.getInfo(3); 我得到了cannot find symbol並且無法編譯。 如何在對象中使用類? 目的是根據int或其他類型使用classA或classB。

package testit;

public class TestIt {

    Object aClass;

    public interface InFace {

        void getInfo(int i);
    }

    public class ClassA implements InFace {

        @Override
        public void getInfo(int i) {
        System.out.println("ClassA: " + this.getClass() + " " + i);
        }
    }

    public class ClassB implements InFace {

        @Override
        public void getInfo(int i) {
        System.out.println("ClassB: " + this.getClass() + " " + i);
        }
    }

    public void testClass() {
        ClassA testA = new ClassA();
        ClassB testB = new ClassB();
        testA.getInfo(1);
        testB.getInfo(2);
        int i = 1;
        if (i == 1) {
            aClass = testA;
        } else {
            aClass = testB;
        }

        System.out.println("aClass: " + aClass.getClass());

//        aClass.getInfo(3);
    }

    public static void main(String[] args) {
        TestIt test = new TestIt();
        test.testClass();
    }
}

由於aClass僅包含ClassAClassB ,它們都是InFace子類型, InFace可以更改

Object aClass;

InFace aClass;

然后,您的InFace類型的變量將支持一個名為getInfo(int i)的方法,並且您的代碼將進行編譯。

您應該使用InFace來聲明您的Object aClass; ,因為您的兩個類都實現了該接口:

InFace aClass;

暫無
暫無

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

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