2015-03-22 8 views
0

Я нашел это заявление в tutorial: «Если класс является абстрактным и не может быть реализован, класс не имеет особого смысла, если это не ПОДКЛАСС»Использование абстрактного класса в Java

Это кажется неправильным. Мне было интересно, было ли то, что они на самом деле имели в виду: «Если класс абстрактный и не может быть создан, класс не имеет большого смысла, если только это не SUPERCLASS».

Вы согласны? Спасибо.

ответ

3

Я читал, что учебник, и это не самое худшее предложение можно найти. Например:

«Абстракция относится к способности создавать абстрактные классы в ООП».

В общем, автор «учебника», похоже, ходит по всем концепциям, фразируя предложения, которые он или она нашел в другом месте, но на самом деле не понимает их.

Если вы изучаете объектно-ориентированное программирование, то проверка исходных данных является хорошей отправной точкой. Книга от Брюса Эккель признан как очень хороший учебный ресурс, и вы можете купить копию, DONWLOAD начало книги, или загрузить полную, предыдущее издание:

http://www.mindviewinc.com/Books/TIJ4/PurchaseBook.php

Просто читая бесплатную демо-версию сделает вас лучше, чем полный «учебник».

2

Возможно, то, что на самом деле означало, было «если это не SUBCLASSED» (что означает, что его подклассы были созданы), что имеет гораздо больший смысл.

0

Класс Abstract - класс, в котором его поведение определяется его подклассами (хотя для абстрактного класса в качестве базового класса может быть определен общий признак).

Итак, если у вас нет подкласса (ов), реализующего поведение, то для него действительно бесполезно. (Что отражается не позволяет создать экземпляр абстрактного класса)

«Если класс является абстрактным и не может быть создан»

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

1

Абстрактный класс

1.Define structure, identity and some default supported behaviour . 
    2. Applicable to show vertical inheritance, i.e. deep branching on the several levels (e.g. AbstractEntity class in domain driven development) 
    3. Members can have different visibility (from public to private) 
    4. You can implement some members (e.g. *Reader classes) 
    5. Inheritance child can have only one base abstract class