为什么需要抽象类:
在多态的前提下,父类的方法体始终是冗余的,即永远不会被执行
什么是抽象类:
没有方法体的方法为抽象方法 ,用abstract修饰;
类中含有抽象方法,则该类必须为抽象类,即abstract修饰所修饰的类
抽象类的特点:
1、一个“类”中如果有抽象方法,则这个类一定是抽象类
2、抽象类可以没有抽象方法
3、抽象类不能创建对象
4、抽象类中的抽象方法必须由子类实现;子类如果没有实现或者没有实现父类所有抽象方法,则该子类必须为抽象类
5、抽象类中可以有具体的方法;该方法用于子类调用
6、抽象类虽然不能创建对象,但是可以定义构造方法,该方法用于子类调用
7、抽象类不能由final和static修饰
package 抽象类;
public abstract class Mammal {//抽象类
public abstract void move();//没有方法体,抽象方法
}
package 抽象类;
public class Whale extends Mammal {
//public abstract class Whale extends Mammal {//若没有下面的子类实现抽象对象,则此子类为抽象类,用abstract修饰
@Override
public void move() {//子类实现抽象方法
System.out.println("靠鳍游动……");
}
}
package 抽象类;
public class Test {
public static void main(String[] args) {
Mammal mammal = new Whale();
mammal.move();
}
}