2013-04-07 5 views
2

я получил подобную линию вскапывающая в проект OpenSource:Java абстрактный класс расширяет два класса

abstract class AbstractClass<A extends ParentClass1, 
    B extends ParentClass2> 

Можете ли вы сказать мне, что на самом деле это означает? Я думаю, что java не поддерживает множественное наследование, так что на самом деле мы здесь делаем? А что такое A и B? : S

+1

http://docs.oracle.com/javase/tutorial/java/generics/ –

ответ

1

Здесь А и В просто место держатели, которые могут быть заменены с любым классом, который простирается ParentClass1 и ParentClass2 соответственно. При создании объекта этого класса вы можете передавать аргументы в угловых скобках (<>). Эти аргументы будут заменены компилятором A и B во время компиляции.

Приведенный выше код не указывает на множественное наследование. Пожалуйста, прочитайте generics, чтобы это понять.

0

Если удалить содержимое в <>, то вы видите его только

abstract class AbstractClass 

, что означает, что класс не распространяющие никаких классов вообще ,

abstract class AbstractClass<A extends ParentClass1, 
    B extends ParentClass2> 

по существу означает, что класс хотел бы объявить 2 генератора A и B и заставить его тип. Это означает, что он хочет, чтобы разработчик класса предоставил 2 класса, которые расширяют ParentClass1 и ParentClass2 соответственно.

Пожалуйста, смотрите this Дополнительные разъяснения

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