Наследование в Java и его запутанные вещи [закрыто]JAVA

Программисты JAVA общаются здесь
Anonymous
Наследование в Java и его запутанные вещи [закрыто]

Сообщение Anonymous »

Код: Выделить всё

class A {
public void m() {
System.out.println("A.m");
}
public void n() {
System.out.println("A.n");
}
}

class B extends A {
@Override
public void n() {
System.out.println("B.n");
}

public void p() {
System.out.println("B.p");
}
}

class C extends A {
@Override
public void m() {
System.out.println("C.m");
}
}

class D extends C {
@Override
public void m() {
System.out.println("D.m");
}
@Override
public void n() {
System.out.println("D.n");
}

public void p() {
System.out.println("D.p");
}
}

public class Main {
public static void main(String[] args) {
A a = new D();
a.m();
}
}
Почему оператор A a = new D(); не сообщается компилятором, если класс A не является непосредственно суперклассом класса D?
Пожалуйста, объясните мне разницу между Типом объекта и Ссылочным типом.

Подробнее здесь: https://stackoverflow.com/questions/783 ... ing-things

Вернуться в «JAVA»