Bootstrap

面向对象——抽象类(abstract)

一、抽象类概述

什么时候用抽象类?

答:某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。

抽象方法的定义:方法只有声明没有实现,用abstract来修饰,该方法就是抽象方法。

注意:抽象方法必须定义在抽象类中,该类也用abstract修饰。

 二、抽象类的使用

抽象类的定义:权限修饰符abstract class 类名 {}

抽象方法的定义:权限修饰符abstract 返回值类型 方法名(参数列表) ;

【示例】抽象类&抽象方法的定义

// 抽象类,员工类

abstract class Employee {

   // 抽象方法,用abstract修饰,只有声明没有实现

   public abstract void work();

}

// 讲师类

class Teacher extends Employee {

   @Override

   public void work() { // 实现抽象方法

      System.out.println("老师讲java课");

   }

}

// 助教类

class Assistant extends Employee {

   @Override

   public void work() { // 实现抽象方法

      System.out.println("助教协助同学解决bug");

   }

}

 三、抽象类的特点

抽象类的特点:

        1)用abstract修饰的类称之为抽象类。

        2)抽象类不能被实例化,因为抽象方法只有声明,无法用对象调用该方法。

        3)抽象类可以定义成员变量静态变量

        4)抽象类可以有构造方法,方便子类创建对象时给抽象类的属性赋值。

        5)抽象类中可以定义普通方法,也可以定义抽象方法(没有抽象方法也可以)。

        6)抽象类一定是一个父类,需要子类重写父类的抽象方法,然后在实例化使用。

抽象方法的特点:

1)抽象方法只有方法声明,没有方法体。

2)子类要么实现父类的抽象方法,要么子类也是一个抽象类,否则编译失败。

3)抽象方法只能存在于抽象类接口中,不能存在于普通类中

注意:abstract关键字不能和private、final、static关键字共存!

 

 

;