目录
一:抽象类
- 简介
用abstract修饰的类叫做抽象类。
抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,
那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,
如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现。
- 抽象类的特点
⑴抽象类不能有对象,(不能用new此关键字来创建抽象类的对象)
a:创建一个抽象类Animal
b:尝试创建Animal对象
⑵有抽象方法的类一定是抽象类
a:有抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法
b:但是抽象类中不一定有抽象方法
⑶抽象类中的抽象方法必须在子类中被重写
a:创建一个抽象类Animal
b:创建一个子类Cat
⑷abstract修饰的方法为抽象方法,此方法不能有方法体(就是什么内容不能有)
注意:抽象方法不能有方法体,在方法后面加一个大括号而里面什么都不写也是不行的,
编译器会报“abstract methods do not specify a body”这样一个错误。
二:接口
- 简介
接口就是一个规范和抽象类比较相似。它只管做什么,不管怎么做。通俗的讲,接口就是某个事物对外提供的一些功能的声 明,其定义和类比较相似,只不过是通过interface关键字来完成。 - 接口的特点
⑴接口中的所有属性默认为:public static final ****;并且要有初始化值
下面给与初始化值,然后测试一个子类
由上可知,虽然我们定义num变量的时候,没有设置final属性,但是通过上面的
效果可知num这个变量的值还是不可修改的,默认带有final属性。
⑵接口中的所有方法默认为:public abstract ****;
三:接口和抽象类的区别