抽象类和重写

一:抽象类

1.概念:
类:用于描述某一类事物
抽象类:抽象的、模糊的、不具体的类
在java的普通类种是不允许多继承的,原因是会出现调用不明确的问题
2.为什么会有抽象类
父类中很多功能是不需要的、重复的,但是功能是不能删除的,它的实现形式是不需要的,此时就可以将父类中功能的具体方法删掉,变为抽象方法方法,类就变为抽象类。
关键字:abstract
3.抽象方法存在的意义是什么?
用于定义功能,明确该类具备此功能(规则)

例如:抽象类和重写抽象类和重写
抽象类和重写抽象类和重写
图一为主函数,图二,三,四都是类,其中Person类继承Parent类 ,User类继承Person类
因为子类和父类中的功能是重合的,所以可以将图二和图三中的功能的具体实现方法删掉,让他们都变成抽象
最后的输出结果为Uesr类中的方法。

抽象类的特点:
1.抽象类可以有抽象方法,也可以有非抽象方法,可以有属性,可以有静态和非静态方法
2.抽象类中可以有构造器(需要开辟空间加载方法和属性),但是不能创建对象,空间需要由子类来开辟 (类的具体实现叫对象,所以抽象类不能创建对象)
3.不需要创建父类的对象,子类调用父类的构造器就可以开辟空间

二:重写

1.方法的重载:方法的重载:在同一个类种,方法名相同,参数列表不同(参数位置,参数个数,参数类型),与返回值无关,最典型的就是构造器。
2.方法的重写:在继承或实现的关系上,方法名相同,参数列表相同,返回值相同,子类的修饰符权限要大于或等于父类中的修饰符权限

什么时候需要重写?
答:当所有的子类都有自己的特殊实现形式时,父类中的功能就没必要有具体的实现,就会变成抽象方法,那此时其所有的子类都必须要重写父类中的全部抽象方法
抽象类和重写
抽象类和重写
@override 称为注解,此处的含义是重写,如果该方法加上了注解,那就代表该方法一定是从父类中重写过来的(如果此时删了父类中的该方法,子类就会报错),如果没有,那么该方法就只是该类中的一个方法而已,需要注意的是,如果没有加@override,但是父类中有该方法,虚拟机仍然会认为 该方法为重写的方法。