2015-05-10 1 views
-1

Я прочитал в SCJP6, что абстрактный класс не может быть создан. Но читайте где-нибудь, что они могут быть созданы. Это правда? Я новичок в Java и хотел бы, чтобы кто-нибудь мог объяснить это подробно. Примером может быть и хорошее.Можем ли мы создать экземпляр абстрактного класса? Является ли это возможным?

+0

также: http://stackoverflow.com/questions/30125552/does-the-jvm-internally-instantiate-an-object-for-an-abstract-class/30125593 # 30125593 –

ответ

1

Вы можете создать ссылку абстрактного класса, но не можете его создать. Напр.

public abstract class AbstractClass { 

    public abstract void abstractMethod(); 
    public void concreteMethod(){ 
     System.out.println("am in concreteMethod"); 
    } 

} 

public class ExtndClass extends AbstractClass{ 

    @Override 
    public void abstractMethod() { 
     // TODO Auto-generated method stub 
     System.out.println(" am in extended class"); 
    } 
    public static void main(String...arg){ 
     AbstractClass abs = new ExtndClass(); 
     abs.abstractMethod(); 
     abs.concreteMethod(); 

    } 

} 

Выход:

am in extended class 
am in concreteMethod 
1

От Java documentation:

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

Абстрактные классы аналогичны интерфейсам. Вы не можете их создать ...

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