- Может ли переменная подкласса быть перенесена в любой из ее суперклассов?
- Может ли переменная суперкласса присваиваться любой переменной подкласса?
- Можно ли присвоить суперклассу любую переменную?
- Если да, может ли переменная интерфейса назначаться переменная из любого класса реализации?
ответ
- Да
- Вы можете назначить экземпляр подкласс к суперкласса переменной
- Хух?
- Вы можете назначить экземпляр класса переменной любого типа интерфейса, что класс реализует
Я думаю, что суперклас не может быть назначен переменной _any_, только один из совместимых типов , –
Второй вопрос: если экземпляр * суперкласс * может быть назначен переменной * подкласса *, и ответ на это окончательно * no *. –
@Mark: Вопрос непонятен. Я оптимистично выбрал интерпретацию, которая имеет положительный ответ. – SLaks
Просто для наглядности, рассмотрим:
class A extends B implements C { }
Где A
является подклассом, B
является суперклассом, а C
- это интерфейс, который реализует A
.
Подкласс может быть отнесен к любому суперклассу.
B b = new A();
родительского класс не может быть брошен вниз к любому подклассу (это является необоснованным, поскольку подклассы могут иметь возможности суперкласс не делает). Вы не можете сделать:
A a = new B(); // invalid!
родительский класс может быть присвоен любой переменной соответствующего типа.
A q = new A(); // sure, any variable q or otherwise...
класс может быть присвоен переменной типа одного из своих реализованных интерфейсов.
C c = new A();
Может переменная подкласс должен быть приведен к любому его суперкласса?
Да
И может быть суперкласс переменной присвоить любой переменный подкласс?
Да
Может суперкласс быть назначен любой переменной?
Да
Если это так, может быть переменный интерфейс присваивается переменным из любого реализующего класса?
Да
вы не можете назначить экземпляр суперкласса переменной подкласса. –
@Mark Возможно, я неправильно понял вопрос. Разве это не означает, что «переменной суперкласса присваивается переменная подкласса»? например ArrayList myArrayList = ...; Список myList = myArrayList – earldouglas
ли все собаки также животные?
Все ли животные также собаки?
Если вам нужно животное, и я даю вам собаку, это всегда приемлемо?
Если вам нужна собака конкретно, но я даю вам какое-нибудь животное, может это когда-нибудь быть проблематичным?
Если вам нужно что-то, что вы можете водить, но вам все равно, что это такое, если у него есть такие методы, как: Ускорение и .Steer, вам все равно, если это Porsche или скорая помощь?
Да, это обычно основная идея: polymorphism.
Предположим, у вас есть некоторые фигуры: круг, квадрат, треугольник. У вас было бы:
class Shape { ... }
class Circle extends Shape { ... }
class Square extends Shape { ... }
class Triangle extends Shape { ... }
Идея наследования заключается в том, что круг - это форма. Так что вы можете сделать:
Shape x = ...;
Point p = x.getCenterPosition();
Вам не нужно заботиться о том, каких конкретном типе переменной x
есть.
- 1. Подкласс класса Java, вызывающий суперкласс
- 2. Почему суперкласс и подкласс отменены?
- 3. Суперкласс может вызвать подкласс
- 4. Подкласс/Суперкласс Objective-C
- 5. как отличить суперкласс в подкласс
- 6. типа или подкласс суперкласс типа
- 7. Наследование объектов javascript - подкласс и суперкласс
- 8. Полиморфизм 1 Суперкласс 4 Подкласс
- 9. подкласс Serializable суперкласс не сериализуем
- 10. Когда делать Суперкласс var = Подкласс()
- 11. Java: Подкласс не может получить значение поля в суперкласс
- 12. почему подкласс ссылка не может содержать суперкласс объекта в Java
- 13. C# объявить подкласс как тип суперкласс
- 14. Персистский подкласс как суперкласс с использованием Hibernate
- 15. Swift не может возвращать подкласс в суперкласс
- 16. Как конвертировать суперкласс подкласс в прошивкой
- 17. метод вызова на подкласс данного указатель суперкласс
- 18. Swift суперкласс/подкласс переменных вид контроллера
- 19. C# Изображение/растровый суперкласс/подкласс Кастинг аномалии
- 20. Захват суперкласса Java и подкласс catch
- 21. Суперкласс с XIB и его подкласс с XIB?
- 22. Суперкласс и подкласс, различные вызовы функций в зависимости от подкласса
- 23. Почему суперкласс суперкласс параметризованный в JAVA
- 24. Как выбрать подкласс в Java
- 25. Java суперкласс наследования
- 26. Является ли подкласс всегда в том же пакете, что и суперкласс в Java?
- 27. Java не разрешает множественное наследование, я путаю подкласс наследовать класс Object и его суперкласс?
- 28. Инициализировать подкласс, сначала отправив 2D-массив в суперкласс в C++?
- 29. Java-клон только суперкласс
- 30. Подкласс вопрос (JAVA)
Вы должны сделать четкое различие между понятием переменной и значением. Как и сейчас, ваш вопрос очень запутан. –
Возможно, вы захотите ознакомиться с противоречивой или ковариацией, поскольку ответ изменится, если вы слегка измените свой вопрос. Вы можете получить приблизительную идею, где это будет другой ответ, прочитав это: http://stackoverflow.com/questions/1184295/java-covariance-question –