2014-03-29 11 views
-1

учу Java застрял здесь, пожалуйста, помогите мне тоже это есть вопросы интервью он-кажетсяАбстрактный класс, класс, интерфейс

1) Абстрактный класс:

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

2) В чем основное отличие абстрактного класса от нормального класса?

3) интерфейс: интерфейс также имеет пустые методы, в чем разница между интерфейсом и абстрактным классом? пожалуйста, дайте пример в реальном времени, чтобы понять, попробовал много теории, чтобы понять, но было неясно

+0

это [ссылка] (http://javarevisited.blogspot.com/2013/04/10-abstract-class-and-interface-interview-question-java-answers.html) может вам очень помочь. В принципе, вы должны сказать абстрактный класс, класс Concrete, интерфейс. –

+0

Попробуйте Head First Java. Это на самом деле объясняется с примерами реального мира, поэтому вы действительно зажаты в своей голове. –

+0

http://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo?rq=1 –

ответ

3

Абстрактные классы - это, по сути, классы скелетов, которые вы можете расширять и дополнять подклассами.

Пример абстрактного класса, что позволяет в течение некоторого упрощения управления вниз линии:

public abstract class CommandBase { 

    public abstract String getName(); 

    public String getUsage() { 
     return "/" + this.getName(); 
    } 

} 

Вы можете расширить класс следующим образом:

public class SomeCommand extends CommandBase { 

    @Override //This is a required override 
    public String getName() { 
     return "some"; 
    } 

    @Override //This is an optional override, method was not abstract 
    public String getUsage() { 
     return super.getUsage() + " <text>"; //refer to superclass for original method invocation 
     //Would return '/some <text>' 
    } 

Интерфейсы являются «контракт» указав, что классы, которые их реализуют, будут иметь этот метод.

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

Попытайтесь немного почитать по адресу Java's documentation around them.

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