package test;
public class Test {
public static void main(String[] args) {
A a2 = new B(); // 1
a2.display1();
a2.display();
((B) a2).display2(); // 2
((A) a2).display(); // 3
B b1 = new B();
b1.display1(); // 4
}
}
class A {
int a = 10;
void display() {
System.out.println("parent class " + a);
}
void display1() {
System.out.println("parent class " + (a + 10));
}
}
class B extends A {
int a = 30;
@Override
void display() {
System.out.println("child class " + a);
}
void display2() {
System.out.println("child class " + (a + 10));
}
}
- которого создается объект? Класса А или В.
- Является ли это понижающее приведение
- почему это не вызова метода класса А? как вызвать метод класса A (переопределить один) с этим объектом, а не с объектом A.
- - это неявное повышение?
- Если класс А имеет вложенный класс B, чем при создании объекта класса А ли объект класса B также сформированный? Я не смог использовать метод класса B с объекта
Как насчет того, чтобы вы задавали один вопрос за раз, с минимальным количеством кода, необходимым для его демонстрации, выстроенным разумно? – khelwood
@khelwood спасибо за ответ .it помог :) – ekaf
@Stephen thanks :) – ekaf