2013-04-04 6 views
0

У меня есть Abstarct класс:Абстрактный класс Initialization

abstract class Shape { 

    public String color; 
    public Shape() { 
    } 
    public void setColor(String c) { 
     color = c; 
    } 
    public String getColor() { 
     return color; 
    } 

    public double area() { 
     return 0; 
    } 
} 

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

 Shape object = new Shape(); 

так инициализации его еще дает мне ошибку, но почему, если я предоставляю один абстрактный метод в классе, тогда может быть понятно, что класс ca не будет инициализирован, поэтому во второй ситуации, почему он все еще дает ошибку. Любая помощь будет оценена инициализация

+0

http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html –

+0

Вы не можете создать экземпляр абстрактного класса. – NilsH

ответ

6

его до сих пор дает мне ошибку, но почему

Поскольку класс является абстрактным. Абстрактный класс просто не может быть создан, независимо от того, есть ли у него абстрактные методы. От JLS section 8.1.1.1:

Это ошибка времени компиляции, если предпринимается попытка создать экземпляр абстрактного класса, используя выражение создания экземпляра класса (§15.9).

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

+0

Thakyou так много для большой помощи. – User42590

0

Нет, вы не можете создать экземпляр абстрактного класса

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