目录
一、抽象类的概念
在Java中,包含抽象方法的类就叫做抽象类。那么什么是抽象方法呢?我们把没有方法主体的方法叫做抽象方法。
二、抽象类的语法
想必大家看了上述的介绍,肯定对抽象方法和抽象类产生了诸多疑问,接下来我们就来谈一下抽象类具体的语法。
//抽象类:被abstract修饰的类
public abstract class Animal {
//抽象方法:被abstract修饰的方法
public abstract void eat();
public abstract void bark();
//抽象类也是类,也可以增加普通方法和属性
public int age;
public int getAge(){
return age;
}
}
由上述我们可以看出:抽象类和抽象方法要用abstract修饰,并且抽象类可以包含普通方法和属性。
三、抽象类的特性
1. 抽象类不能直接实例化对象
2. 抽象方法不能用 private 修饰
3. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰
5. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类
6. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量
四、抽象类举例
那么抽象类具体在哪种情况下使用呢?
答:当父类中的各子类要完成某一行为,但每个子类的完成方式不同时,我们就可以在父类中把该行为定义为抽象方法,具体的实现交给子类完成,此时,该父类就为抽象类。
举例:猫和狗都是动物,因此可以建立一个叫Animal的父类,子类分别为Dog和Cat,它们都有吃和叫的行为,但因为狗是吃狗粮,猫是吃猫粮,并且狗叫是汪汪汪,猫叫是喵喵喵,所以可以写出如下代码:
//父类
public abstract class Animal {
public abstract void eat();
public abstract void bark();
}
//狗类
public class Dog extends Animal{
public void eat(){
System.out.println("小狗吃狗粮");
}
public void bark(){
System.out.println("小狗汪汪叫");
}
}
//猫类
public class Cat extends Animal{
@Override
public void eat() {
System.out.println("小猫吃猫粮");
}
@Override
public void bark() {
System.out.println("小猫喵喵叫");
}
}
//
public class Main {
public static void main(String[] args) {
Dog dog=new Dog();
dog.bark();
dog.eat();
Cat cat=new Cat();
cat.bark();
cat.eat();
}
}
运行结果如下:
以上便是本篇文章的全部内容,感谢各位看官观看,如本篇对你有所帮助,可以点点关注收藏支持一下,感谢支持!!!