Java中的接口

来源:互联网 发布:阿里云ecs传文件 编辑:程序博客网 时间:2024/06/01 09:50
Java中没有多重继承的机制,Java的类最多只能从一个父类中继承特性,当然多重继承也有他的优势,他允许一个子类从多个父类中分别继承属性或方法,因此这个子类可以兼容原来多个类的优势,定义子类的时候更具有优势,更加方便,更加高效,Java中 虽然没有多继承的概念,但是他提出了接口的概念,实现了多继承的机制,还有了自己优势。
多继承的机制,容易出现很多二义性的问题,例如:设一个子类S继承两个父类P1和P2,而P1和P2中又恰有同名同参数列表,代码又完全不一样的方法Thesame(),子类S没有重写 这个方法,但是需要调用他,根据继承性的原则,子类的实例可以调用父类的方法,而S的两个类中都有方法Thesame() 方法,那么S的实例调用的是哪段代码呢?

为了避免这样的歧义性,Java中规定,两个父类中同名的方法都不写具体的代码,即方法 体为空。方法体为空的方法是抽象方法,含有抽象方法的类是抽象类。
上面所说的抽象类称为接口,形式上接口有类的形式,也含有成员方法和变量。只是方法体是空的。

接口可以作为 父类 被子类 继承,一个类继承与一个接口称为类实现了接口,Java中类可以实现多个接口,使用implements关键字。在实现接口的类中,必须对接口中的所有抽象方法给出具体的代码实现,即使多个接口中具有同名的方法,因为没有方法体,具体的实现都在实现接口的类中唯一给出。
正因为在实现接口的类中才定义方法体,因此接口起到规范的作用,它只规定了类中的方法所需要的参数列表及返回值类型,至于如何从输入到输出完全交给具体的类来完成,接口也因此被看做是一种协议。
0 0
原创粉丝点击