Тип объекта при создании экземпляра класса, реализующего интерфейс - PullRequest
0 голосов
/ 13 июля 2020

Допустим, у меня есть класс с именем TestClass, который реализует интерфейс с именем TestInterface. В чем разница в создании следующих объектов:

TestInterface test1 = new TestClass();
TestClass test2 = new TestClass();

Если нет различий, какое соглашение лучше?

1 Ответ

0 голосов
/ 13 июля 2020
interface TestInterface {
    public void function2();
}

public class TestClass implements TestInterface {
    public static void main(String... args) {
        TestInterface testInterface = new TestClass();
        TestClass testClass = new TestClass();

        /* function1 belongs to TestClass class only */
        testInterface.function1(); // This gives you compile time error as function1 doesn't belong to TestInterface
        testClass.function1(); // Whereas this is ok.

        /* function2 belongs to TestInterface and TestClass, so function2 can be called from both object (testClass and testInterface) */
        testInterface.function2(); 
        testClass.function2();
    }
    public void function1() {
        System.out.println("This is function 1");
    }
    public void function2() {
        System.out.println("This is function 2");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...