В соответствии с перечисленном определения субтипирование:
Подтипы относится к совместимости интерфейсов. Тип B является подтипом А, если каждая функция, которая может быть вызвана на объект типа А также может быть вызван на объект типа B.
Суб-типирование в Java в основном сродни расширения или реализации интерфейс на Java. Например:
interface Fish {
void swim();
}
interface FlyingFish extends Fish {
void fly();
}
Здесь FlyingFish
является подтипом Fish
, потому что летучая рыба всегда вид рыбы.
Согласно указанному определению наследования:
Наследование относится к повторному использованию реализаций. Тип B наследуется от другого типа A, если некоторые функции для B записываются в терминах функций A.
Это наследование определения относится к наследованию реализации на Java. Обычно это также форма подпечатывания, но не всегда с плохо разработанными таксономиями, которые вы увидите по мере продвижения в своей карьере. ;-) Например:
class FlyingFish {
void swim() {
// implementation code to swim in water
}
void fly() {
// implementation code to jump out of the water and fly
}
}
class Bird extends FlyingFish {
// no need to implement fly, reuse implementation of flying fish
void swim() {
// do nothing implementation - most birds can't swim.
}
}
class Fish extends FlyingFish {
void fly() {
// do nothing implementation - most birds can't swim.
}
// no need to implement swim, reuse implementation of flying fish
}
Здесь, как и Bird
Fish
ненадо наследуют от FlyingFish
, хотя ни Bird
, ни Fish
являются подтипы летучей рыбы.
Надеюсь, что это поможет, прокомментируйте, если у вас есть какие-либо последующие вопросы. Кроме того, книга, которая может стоить вашего времени, - Эффективная Java 2nd Ed. от Josh Boch. В этой книге Блох дает некоторые действительно интересные материалы по этим темам.
Вы можете удалить ссылку и подвести итог ее содержимому как часть своего вопроса? Многие из нас не могут/не будут следовать ссылкам на случайные сайты, потому что мы работаем, а также понижает качество вашего вопроса, потому что, как только сайт/документ удаляется, ваш вопрос перестает иметь смысл. Как только это будет сделано, я удалю свой нисходящий голос и проголосую за закрытие. –