2013-08-08 2 views
-6

Может ли кто-нибудь объяснить мне, как реализовать эти эти типы кода и объяснить, какая разница между этими тремя? Я кодирую в java.Наследование. литье и полиморфизм в java

+4

Вы пробовали изучить его или просто хотите, чтобы кто-то из Google это для вас? – q99

+0

Этот сайт касается проблем с фиксацией и не поможет вам что-то в Google, но поскольку я хороший парень, вот официальный [учебник по наследованию] (http://docs.oracle.com/javase/tutorial/java/IandI /subclasses.html), который должен ответить на ваши вопросы. – ssindelar

+0

Этот вопрос слишком широк - если вы хотите учебник, в Интернете есть много. Хорошо, что я вернусь сюда, если у вас есть более конкретный вопрос. – mikera

ответ

1

Я goign, чтобы сделать снимок на него, потому что я недавно пытался понять те, и это хороший способ, чтобы увидеть, если я сделал:), потому что, если вы не можете объяснить что-то, вы этого не поняли :)

Кастинг довольно прост. Это означает, что в значительной степени преобразовать значение или объект определенного типа в другой тип. Таким образом, можно, например, превратить поплавок в целое

float y = 7.0 
int x = (int) y 

х теперь будет 7. Конечно, вы не можете просто бросить любой тип к любому другому типу. Есть ограничения, которые вы должны искать в google - я никогда не смог бы их охватить.

Полиморфизм кажется похожим, но на самом деле является чем-то другим. Как я понимаю, это означает, что некоторые объекты могут быть нескольких типов. Например, у вас есть класс, который расширяет другой класс, любой экземпляр родительского класса также может быть типа производного класса.

class Base {...} 
class Derived extends Base {...} 

Base obj1 = new Base(); 
Derived obj2 = new Derived(); 

obj1 = obj2; 

В течение этого сниппета obj1 будет быть экземпляром базы первого, но тогда это будет экземпляр Derived, который является классом, производным от основания. Это возможно, потому что экземпляры производных классов содержат «внутренний объект» (я не знаю официального названия) базового класса. Когда вы приводите базовый экземпляр экземпляр Derived вы на самом деле получить этот «внутренний объект»

Надеется, что это помогает

0

Истинного полиморфизм (то есть множественное наследование) не доступен в Java. Тем не менее, вы можете получить хорошее приближение, используя «Интерфейсы», хотя вашим классам необходимо реализовать все функции, предоставляемые интерфейсом (link to Java Interfaces).

Вы также можете эмулировать множественное наследование с помощью делегированных сеттеров/геттеров в классах. Это может быть сложно, но это также может дать вам эффект множественного наследования.

Эта тема подробно обсуждается в this Stack Overflow post.

Смежные вопросы