第5章 抽象类与接口
Posted 啊...这
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第5章 抽象类与接口相关的知识,希望对你有一定的参考价值。
抽象类:只有方法名,而没有方法体的类,就称之为抽象类.
作用:当父类只是知道子类应该干什么,但是不知道子类该如何去实现这些方法,这种时候就应该使用抽象类和抽象方法,在子类中再去具体实现抽象方法.
语法:
abstract class 类名{ //抽象类需要用abstract修饰符来修饰 public abstract 返回值类型 方法名(参数); //抽象方法也需要用到abstract方法来修饰 }//要使用抽象类的时候直接extends继承即可
特点:1、抽象类和抽象方法都需要被abstract修饰,并且抽象方法一定要定义在抽象类中.
2、抽象类不能直接创建对象,因为调用抽象方法没有意义
3、只有覆盖重写了抽象类中的所有抽象方法后,其子类才可以创建对象,否则该子类还是一个抽象类
4、抽象类中可以不定义抽象方法(所以包含抽象方法的类一定是抽象类,抽象类也可以定义非抽象方法)
接口
接口是比抽象类更抽象的"类".接口只描述所应该具备的方法,并没有具体实现.
具体的实现由抽象类的实现类(子类)来实现.
优点:将功能的定义与实现分离,优化了程序设计.
语法:
public interface 接口名 { 修饰符 返回值 抽象方法1(); 修饰符 返回值 抽象方法2(); 修饰符 返回值 抽象方法3(); } class 实现类名 implements 接口名 { 抽象方法1实现(){}; 抽象方法2实现(){}; 抽象方法3实现(){}; }
实现类的抽象方法的修饰符和返回类型、参数必须和接口定义的一样.
继承父类同时实现接口:
一个子类可以同时继承一个父类和实现一个接口
当一个子类继承了一个父类,同时他又需要其他的
功能的时候,接口就派上用场了.
语法:
class Dog extends 子类 implements 接口 { //接口实现 }
接口的多继承:
类之间可以通过继承来产生关系,但只支持多层继承,而不支持多继承.而接口和类使用implements(实现)来产生关系
同样,接口之间也可以使用extends进行继承,而且一个接口还能同时继承多个接口
语法:
interface 接口名 extends 接口名1,接口名2,接口名3{ //子接口不需要去实现父类接口的方法 }//父接口之间用逗号隔开
课后习题
1、接口和抽象类的异同是什么?
1、接口中只有抽象方法,而抽象类中不一定有或只有抽象方法,还能有普通方法和成员变量.
2、抽象类和接口都不能用来实例化对象.
3、接口可以多继承,而抽象类不行
4、一个类可以实现多个接口,但只能继承一个抽象类
5、抽象类可以有构造函数,而接口不能.
2、接口和父类的异同是什么?
1、接口中只能有抽象方法(只有方法描述而没方法实现),而父类中不能拥有抽象方法,可以拥有普通方法(需要有实现)和成员变量.
2、接口不能实例化对象,而父类可以.
3、一个子类可以实现多个接口,但只能继承一个父类.
4、接口使用implements关键字实现,父类使用extends来继承
以上是关于第5章 抽象类与接口的主要内容,如果未能解决你的问题,请参考以下文章