抽象类
被abstract修饰词修饰的类叫做抽象类
抽象类的定义:abstract class 类名{}
抽象类的特点:
1.抽象类无法被实例化
2.子类继承抽象类再实例化
3.子类继承了抽象类必须实现抽象类的中的抽象方法
抽象方法
被abstract修饰词修饰的方法叫做抽象方法,抽象方法的作用在于为所有子类定义一个统一的接口。注意,抽象方法只需声明,而不需要实现,用“;”而不是“{}”
抽象方法的定义:abstract 返回类型 方法名();
抽象类中可以不包含抽象方法,但是一旦某个类中定义了抽象方法,那么这个类只能声明为抽象类(即抽象方法只能定义在抽象类中)。
抽象方法在子类中必须被实现,否则子类仍然是抽象类,不可实例化。
eg:
abstract class C{
abstract void callme( );
void metoo( ){
System.out.println("Inside C's metoo( ) method");
}
}
class D extends C{
void callme( ){
System.out.println("Inside D's callme( ) method");
}
}
public class AbstractTest{
public static void main( String args[ ] ){
C c = new D( );
c.callme( );
c.metoo( );
}
}
运行结果为:
抽象在java中的意义
当父类知道子类应该包含什么样的方法,但无法确定子类如何实现这些方法时,就需要定义一个抽象类。
抽象类相当于是一种规范,它里面的抽象方法规定了所有的子类中都必须有这些方法, 所有的抽象方法都必须要被重写(override)。