java基础(抽象类和抽象方法)

1.抽象类

  • 由来:利用抽象类为了更好的对类进行分类。如同不同的具体植物有不同的名字,但都可以统称为植物,“植物”这个抽象的词对所有具体植物进行了归纳。
    java用来模拟现实世界,所有也存在抽象类。
  • 抽象类通常用来作为一个类族的若干顶层类,用最底层的类表示现实中具体的事物,用最顶层的类表示该类族事物所具有的共性。
  • 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
  • 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
  • 在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

2.抽象方法

  • 定义方法时,只有方法头,没有方法体,这样的方法称为抽象方法。
  • 凡是没有方法体的方法都必须用abstract关键字声明为抽象方法。
  • 含有抽象方法的类都必须声明为抽象类。
  • 抽象类不一定有抽象方法,有抽象方法一定是抽象类。
  • 子类如果没有把抽象类的所有抽象方法具体实现,则子类也必须声明为抽象类。
abstract class A //抽象类
{
    abstract void f(); //抽象方法
}

abstract class B extends A 
{
    
}
public class Test 
{
    public static void main(String[] args)
    {
        
    }
}

3.抽象类的使用

  • 不能实例化抽象类,但可以定义一个抽象类的引用。
    A a1 = new A();//error,不能生成抽象类的对象
    A a1; //OK, a1只是A的一个引用
  • 把一个子类对象的地址赋给抽象类的引用,然后通过抽象类的引用调用子类从父类继承过来的方法,即抽象类也可以实现多态。
    假设A是抽象类,B是A的子类且实现了A中的所有抽象方法
    A a1 = new B();

你可能感兴趣的:(java基础(抽象类和抽象方法))