抽象类:声明方法的存在而不实现的类,如果一个类中没有包含足够的信息来描绘一个具体的对象,它只能被继承,派生出子类,这样的父类就是抽象类。1.1抽象类的格式
1.修饰抽象类的修饰符有public和默认修饰符两种;2.接口
2.抽象类中可以有抽象方法,也可以有非抽象的方法;
3.抽象方法是无方法体的方法。
4.定义抽象类时,要在关键字class的前面添加abstract。
5.抽象类不能被实例化;
6.其包含的抽象方法必须在其子类中被实现,否则该子类只能声明为abstract;
7.抽象方法不能为static;
8.在下列情况下,一个类必须声明为抽象类:
- 当一个类的一个或多个方法是抽象方法时;
- 当类是一个抽象类的子类,并且没有实现父类的所有抽象方法,即只实现部分;
- 当一个类实现一个接口,并且不能为全部抽象方法都提供实现时;
由于类的多继承能够导致方法调用的冲突,所以Java中的类只能单继承。但是很多时候还是需要多继承的,Java中的接口就可以实现多继承,接口中不存在具体方法,不会引起方法调用的冲突。instanceof运算符可以用来决定某对象的类是否实现了接口2.1接口的格式
1.接口中只包含常量和抽象方法,而没有变量和方法的实现,接口对类来说是一套规范,是一套行为协议。2.2接口可以多继承
2.接口不是一个类,不能实例化。
3.接口规定了类的共同行为。
4.在Java中,接口的声明采用interface关键字,接口不是一个类,没有构造方法,不能被实例化。
5.修饰接口的修饰符只有public和默认修饰符两种,不写也是public的
6.接口可以是多继承,接口只能继承接口,不能继承类。
7.属性必须是常量(有初值),方法必须是抽象的(无方法体)。
如果一个类要实现一个接口,那么这个类就必须实现接口中所有抽象方法。否则这个类只能声明为抽象类,多个无关的类可以实现一个接口,一个类可以实现多个无关的接口,一个类可以在继承一个父类的同时,实现一个或多个接口。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |