Java抽象类
Java抽象类
✨抽象类不可以用于创建对象。抽象类可以包含抽象的方法,这些方法要在具体的子类中实现。
抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。
public abstract class Animal {
抽象方法: 就是加上abstract关键字,然后去掉大括号,直接分号结束。
public abstract void eat();
如何使用抽象类和抽象方法:
1. 不能直接创建new抽象类对象。
2. 必须用一个子类来继承抽象父类。cat extend Animal
3. 子类必须覆盖重写抽象父类当中所有的抽象方法。
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
4. 创建子类对象进行使用。
5. 抽象类的构造方法定义为protected,因为它只被子类使用。
*/
public abstract class Animal {
// 这是一个抽象方法,代表吃东西,但是具体吃什么(大括号的内容)不确定。
public abstract void eat();
// 这是普通的成员方法
// public void normalMethod() {
//
// }
}
public class Cat extends Animal {
//创建子类猫是动物
@Override
//子类必须覆盖重写抽象父类当中所有的抽象方法。
public void eat() {
System.out.println("猫吃鱼");
}
}
public class DemoMain {
public static void main(String[] args) {
// Animal animal = new Animal();
// 错误写法!不能直接创建抽象类对象
//用一个子类继承父类后,覆盖重写父类抽象方法后new一个对象
Cat cat = new Cat();
cat.eat();
}
}
一个抽象类不一定含有抽象方法,只要保证抽象方法所在的类是抽象类,即可。
这样没有抽象方法的抽象类,也不能直接创建对象,在一些特殊场景下有用途。
🎈抽象方法主要作用:捕捉子类的通用特性
抽象类的几点说明
- 抽象方法不能包含在非抽象类中;
- 抽象类是不能使用new操作符来初始化;
- 包含抽象方法的类必须是抽象类;
- 子类可以覆盖父类的方法并将它定义为abstract;
- 即使子类的父类是具体的,这个子类也可以是抽象的;
- 不能使用new操作符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型;
posted on 2022-04-16 09:48 Michael_chemic 阅读(119) 评论(0) 编辑 收藏 举报