Это Java вопрос:
При создании экземпляра Object
с типом ссылки, отличным от типа Object
, каковы сценарии, определяющие доступность элемента?
Например:
Shape shp = new Square(2, 4); //Where Square extends Rectangle and implements Shape
Будут ли методы Shape
или Square
связаны с этим кодом?Имеет ли значение, если все методы статичны?Имеет ли какое-либо отношение выбор к сокрытию класса?Если методы переопределены, влияет ли это на выбор?
Вот более подробный вопрос о том же:
public abstract class Writer {
public static void write() {System.out.println("Writing...");}
}
public class Author extends Writer {
public static void write() {System.out.println("Writing book");}
}
public class Programmer extends Writer {
public static void write() {System.out.println("Writing code");}
public static void main(String[] args) {
Writer w = new Programmer();
w.write();
}
}
Почему приведенный выше код производит вывод -> Запись ...
И следующий код производит вывод -> Написание кода
public abstract class Writer {
public void write() {System.out.println("Writing...");}
}
public class Author extends Writer {
public void write() {System.out.println("Writing book");}
}
public class Programmer extends Writer {
public void write() {System.out.println("Writing code");}
public static void main(String[] args) {
Writer w = new Programmer();
w.write();
}
}
При создании экземпляра объекта с типом Reference, отличным от типа Object (как в этом примере),сценарии, определяющие доступность участника?