1.抽象类的概念
(1)抽象类的定义🐨
💖很多具有相同特征和行为的类可以抽象出来一个抽血类
💕被abstract关键字修饰的类叫做抽象类,被abstract修饰的方法叫抽象方法。
❤️什么是抽象方法:只有声明,没有具体实现例如:void init();【没有{}】
(2)抽象类的作用🐋
将很多类都存在的相同行为或特征的类抽象处理为一个类,不必在父类实现,根据不同的需求,使用不同的子类继承,提高代码灵活性。
🐲有人在这里可能就会问了:那普通类,普通方法不也能被继承被重写,为啥非得用抽象类呢?
🦄这里呢,抽象类就更像一层保险和提示。举个例子,如果一个普通类继承他的父类时忘了重写父类的某方法,那么它调用该方法时一定时调用父类的,此结果大概率不是你想要的,你就需要花费时间去排错,因为编译器是不会有提示的。但是抽象类就不一样的,抽象方法只有声明没有实现,你不重写就调用是一定会报错的!🐲
(3)抽象类的六点注意事项🐡
1.🐻抽象类不能被实例化
2.🐣抽象类,抽象方法不能被static,private,final关键字修饰
3.🦖抽象类可以有非抽象的方法和一般属性,但有抽象方法的类一定要定义未抽象类
4.🐲抽象类可以被继承,非抽象类继承时,子类必须重写该抽象类的所有抽象方法
5.🐠抽象类可有构造方法
6.🙉抽象类可以继承抽象类,这时就不硬性要求子类重写所有抽象方法了
2.抽象类的演示
public class AbstractDemo {
public static void main(String[] args) {
Fish fish=new Fish();
fish.demo();
fish.test();
}
}
abstract class Animal{
public int num=10;//抽象类可以有一般属性
Animal(){//抽象类可以有构造方法
System.out.println("我是Animal抽象类的构造方法");
}
void demo(){//抽象类可以有普通方法
System.out.println("我是Animal抽象类的普通方法");
}
abstract void test();
}
class Fish extends Animal {
@Override//这个是重写的注解,代表该方法是重写的
void test() {
System.out.println("我是Animal中抽象方法test的重写");
}
}
结果:
那么今天的内容就分享到这里,感谢阅读!🐣🐣🐣🐣🐣🐣