抽象类不能够直接利用关键字 new 实例化,那么如果要想使用,则必须按照如下的原则进行:
· 抽象类必须有子类,而且子类(不是抽象类)那么必须要覆写抽象类之中的全部抽象方法;
· 利用对象的向上转型,利用子类对象为抽象类对象实例化。
在以后的开发之中,一个类永远都不要去继承一个已经实现好的类。所有的类必须继承抽象类(或者实现接口)抽象类规定了子类必须要做的事情,
即:抽象类的子类必须按照严格的要求覆写抽象类中的方法。
abstract class A
{
public void fun()
{
System.out.println("hello");
}
public abstract void get();
}
class B extends A
{
public void get()
{
System.out.println("world");
}
}
public class TestDemo
{
public static void main(String args[])
{
A a=new B();
a.fun();
a.get();
}
}
output:
hello
world
抽象类的基本概念清楚之后,下面再来总结几点:
· 抽象类与普通类相比最大的不同只是在于抽象类之中存在有抽象方法,所以在抽象类之中依然可以定义属性、构造方法等。
· 抽象类声明时不允许使用 final,抽象类必须要求有子类,而 final 定义的类是不能够有子类的。
· 抽象类之中即使没有抽象方法,那么也不能够被直接实例化;
abstract class A
{
private String title;
public A(String title)
{
this.title=title;
}
public void fun()
{
System.out.println(this.title);
}
public abstract void get();
}
class B extends A
{
public B(String title)
{
super(title);
}
public void get()
{
System.out.println("world");
}
}
public class TestDemo
{
public static void main(String args[])
{
A a=new B("hello");
a.fun();
a.get();
}
}
output:
hello
world