在java中,接口是一切实现方法的来源,任何实现都离开不了接口,那么,一个标准的java接口写法是怎样的呢?下面,就让小编带你一起了解一下吧。
(一)接口
1、什么是接口。
接口就是一些方法特征的集合。一些功能的定义。
比如:能被打开,能被关闭,这是定义了一些功能。把这些功能放在一起,我们称它为接口。
(可以理解为一种特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示)
(二)接口的特点:
1、接口里面的方法不能有实现(规范,标准)(像是PCI插槽一样),而且必须是public的,由实现它的类去实现(如果是private的话,那么子类就看不见,那么怎么去实现)
2. 接口不能实例化,只能用来充当子类的规则模版
3、接口中的方法默认为public,abstract,任何实现了接口的类必须重写接口的所有方法,不能少(否则当前类需要修饰为抽象类);
3、多个无关的类可以实现同一接口;(一个父类有多个子类)
4、一个类可以实现多个接口(这与单继承不一样!);
5、与继承相似,可以实现多态;
6、接口之间可以继承,而且是多继承;
(三)接口与接口之间具备扩展的概念
类------extends----->类 (只能继承一个类)
接口----extends----->接口 (可以继承多个)
接口---implements--->类 (可以实现多个接口)
(四)接口与抽象类的异同
不同点:
(1)抽象类一定要有is-a的关系,而接口没有。
(2)抽象类里面不一定都是抽象方法,接口一定是抽象方法
(3)父类的方法可重写,也可不写。但接口中定义的功能,子类一定要实现。
(4)继承是单继承,但接口是多继承,多实现
相同点:
(1)他们都可以定义变量来引用子类的对象,从而实现多态的功能。提高代码的可扩展性及维护性。
(2)他们都不能实例化, 但是类可以
优势:
1、抽象类中可以可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象方法
由于抽象类中允许加入具体的方法,因此扩展抽象类的功能,即向抽象类中添加一个具体的方法不会对子类造成影响。而对于接口,一旦接口公布就必须非常稳定,因为随意在接口中添加抽象方法会影响到所有实现类,这些类要么实现所有新增的方法,那么声明为抽象类
2、一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在
接口具体实现:
package fuxi; /* (1) 编写Animal接口,接口中声明run() 方法 (2) 定义Bird类和Fish类实现Animal接口 (3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法 */ public class fuxi { public interface Animal { void run(); } class Bird implements Animal { public void run() { System.out.println("鸟不会游泳"); } } class Fish implements Animal { public void run() { System.out.println("鱼会游泳"); } } public fuxi() { // TODO Auto-generated constructor stub System.out.println("生成对象时调用构造函数"); } public static void main(String[] args) { // TODO Auto-generated method stub fuxi Fuxi = new fuxi(); Bird bird = Fuxi.new Bird(); bird.run(); Fish fish = Fuxi.new Fish(); fish.run(); } }
以上就是java接口的所有内容了,想了解更多相关java入门知识,快请一直关注我们的网站吧。
推荐阅读: