2013-08-16 3 views
-1

Я часто делаю базовый класс (большинство базового класса времени для Activity), который затем расширяется другими классами в моем проекте.Как принудительно реализовать метод класса без объявления всего абстрактного класса?

Как заставить клиентов реализовать определенный метод?

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

+1

Вот для чего абстрактно. Подкласс 'Активность' с классом' abstract'. И сделайте свой класс подклассом этого класса. –

ответ

0

Создайте Interface. Тогда, если кто-то захочет использовать это, он должен реализовать все эти методы. Другими способами не может заставить реализовать все методы.

+0

OP хочет иметь некоторые конкретные методы. – hexafraction

2

Сделайте реферат. Если вы хотите принудительно выполнить реализацию, вы не захотите все равно установить базовый класс. Другие методы могут по-прежнему иметь конкретные реализации, а именно:

public abstract class ServerListHtml extends HttpServlet { 
    abstract public void foo(); 
    public int concrete() { 
     return 0; 
    } 

} 

Затем вы можете определить свой собственный подклассу, если вам нужен базовый набор функций по умолчанию.

0

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

Возможно, вам стоит найти хорошее наследство от abstract class или действительно думать об использовании Interface.

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