第十一章 接口和抽象类
抽象类
如果父类的方法不确定如何使用方法体来实现,可以把这个方法定义为一个抽象类
1.什么是抽象类?
表达的是一种抽象的概念,仅仅作为其他派生类的一个父类,主要定义功能,具体的实现交给他的子类来做
2.语法
在class前面加上abstract就是一个抽象类
3.抽象类的特点
①抽象方法所在的类必须是抽象类
②抽象类不能进行实例化
③如果要实现一个抽象类,创建一个子类去继承这个抽象类
④子类继承抽象类以后,必须重写抽象类里面所有的抽象方法(前提子类不是抽象类)
⑤抽象类里面可以定义普通方法
⑥抽象类可以定义构造方法
4.抽象方法:
在返回值前面加上abstract就是一个抽象方法
抽象方法的特点:
只有方法的定义,没有方法体
5.取视频文件的拓展名
lastIndex=file.lastIndexOf(".");
截取字符串,只保留拓展名
substring(index)
把字母变成大写
toUpperCase()
接口
接口就是一种公用的规范标准,只要符合规范标准,大家都可以通用
6.什么是接口?
①就是多个类之间的公共规范
②接口就是一个特殊的抽象类型,接口里面的方法都是抽象方法
③接口解决了java单继承的鸡肋
7.怎么定义一个接口?
public interface 接口名{}
8.接口的特点
①接口里面的属性都是常量,默认加上"public static final"修饰
②接口里面的方法都是抽象方法,默认会加上"public abstract"修饰
③接口不能实例化
④抽象类是通过继承,接口是用来实现的
⑤一个类实现一个接口,必须实现这个接口里面所有的抽象方法(前提这个类不是抽象类)
⑥一个类可以实现多个接口,中间使用逗号隔开
⑦接口里面不能定义普通方法
⑧接口没有构造方法
⑨接口也可以继承接口,并且可以继承多个接口
9.实现类
①实现接口的类叫做实现类 class A implements B
②如果一个类继承了一个父类同时需要实现一个接口,继承一定是在实现接口前面
class E extends D implements C
10.抽象类和接口的异同
相同点:
①接口和抽象类都不能被实例化,只能被其他类实现和继承
②接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法,否则实现的类就是抽象类
不同点:(重点)
①抽象类与接口定义不同:抽象类abstract class,接口interface
②接口里只能包含抽象方法,不包含已经实现的方法;抽象类则可以包含普通方法
③接口里不能定义静态方法,抽象类可以定义静态方法
④接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量
⑤接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成属于抽象类的初始化操作
⑥接口不包含初始化块,但抽象类可以包含初始化块
⑦一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补java的单继承不足
11.实现两个对象的比较