什么是抽象类?
在Java中引入抽象类的概念是为了规范化继承类,在抽象类中必须有抽象方法,而子类在继承抽象类时必须实现抽象方法或者重写抽象方法。通俗来讲,我们定义一个animal父类,通过引入关键字abstract来将该类定义为一个抽象类,在抽象类中必须添加抽象方法,例如,我们为所有动物添加抽象方法run()
和shut()
,在子类继承抽象父类时必须重载run()
和shut()
这两个抽象方法。
也就是说,抽象类使得我们在继承父类时变得不再那么随意,必须按照抽象父类的模板来实现子类的继承!
示例代码如下:
//定义一个抽象父类animal
public abstract class Animal {
//添加两个抽象方法run()和bark()
public abstract void run();
public abstract void bark();
}
//定义一个Cat子类继承抽象父类animal
class Cat extends Animal{
//在Cat子类中重写父类的抽象方法run()
@Override
public void run() {
System.out.println("走猫步!!!");
}
//在Cat子类中重写父类的抽象方法bark()
@Override
public void bark() {
System.out.println("喵喵喵!!!");
}
}
public class TestAbstarct {
public static void main(String[] args){
Cat cat =new Cat();
cat.run();
cat.bark();
}
}
抽象类有以下几个特性:
1.抽象类不可以直接实例化
2.有抽象方法的类就是抽象类
3.抽象类仅可以用来继承
4.抽象类可以包含属性、方法、构造方法,但构造方法只可以通过子类来实现
5.子类继承抽象父类时,抽象父类的抽象方法必须实现