Java-拾遗:接口

来源:互联网 发布:linux vi强制保存 编辑:程序博客网 时间:2024/06/17 03:14

一. 接口(interface)

1. 接口的定义

           抽象方法和常量值的集合。从本质上讲,接口是一种特殊的抽象类.

2. 接口的格式

           [public] intercace interfaceName [extends SuperInterfaceList]

            {

                        ......//常量定义和方法定义

             }

3. 接口中定义的属性必须是publi static final的,而接口中定义的方法则必须是 public abstract,因此这些修饰符可以部分或全部省略。

4. 接口中定义的属性的值在实现类中不能被更改。

5. 一个类只能实现某个接口,不能继承某个接口

6. 一个类可以实现多个接口,但一个类不能继承多个类

7. 但接口可以继承接口

8. 接口不但可以继承接口,而且可以继承多个接口,即允许多继承。

9. 如果一个类只实现了一个接口的部分方法,则该类必须得声明为抽象类。

10. 一个类可以继承一个父类的同时实现一个或多个接口,但extends关键字必须在implements之前

11. 不可以new接口对象,但可以定义一个接口引用类型的变量,并将其指向实现接口的对象,达到多态的目的。

/*接口中定义的属性的值在实现类中不能被更改接口的属性是public static final 类型*///接口中是不可以定义构造函数的interface It{int i = 10;  //不能改为 int i;}class A implements It{public A(int j){//this.i = j;  // 接口It中的属性i 是public static final 类型,不可以在实现类中被改变}}class TestInter_1{public static void main(String[] args){A aa = new A(10);System.out.println("aa.i = " + aa.i);System.out.println("aa.i = " + A.i);}}
class A{}interface It1{}interface It2 {}//接口可以多重继承,即一个接口可以有多个父接口,但是一个类只能有一个父类,Java类不允许多继承,接口却允许多继承interface It3  extends It1, It2{}interface It4{int i = 20;}//一个类可以在继承一个父类的同时实现一个或多个接口,但extends关键字必须的在implements 之前class T  extends A implements It4,It3{}class TestInter_2{public static void main(String[] args){System.out.println("嘿嘿!");}}

/*如果一个类只实现了一个接口的部分方法,则该类必须声明为抽象类。*/interface it1{void f();  //接口方法的的类型必须是:public abstrace。void g();}abstract class A implementes it1 // 去掉abstract就会报错{public void f(){System.out.printin("AAAA");}}public class Testinter{public static void main(String[] args){System.out.orintln("哈哈");}}

/*一个类要想实现某接口中的方法时,必须得在方法返回值前加上public        不可以new接口对象,但可以定义一个接口引用的变量并将其指向实现接口的对象,达到多态的目的*/interface It1{void f();  //接口方法的的类型必须是:public abstrace。}class A implementes It1{<span style="color:#FF0000;">//piblic 不能丢,也不能改为其他修饰符</span>public void f()   <span style="color:#FF0000;">//函数重写:1. 名字 2. 形参 3. 返回值 ,4. 权限不能更低</span>{System.out.printin("AAAA");}}public class Testinter{public static void main(String[] args){//It it = new it(); //error. 不允许new接口对象                // It it; //ok                 It it = new A();it.f();System.out.orintln("哈哈");}}

二.接口的作用

1. 通过接口可以实现不相关类的相同行为

       如:Java规定所有可以完成自我复制功能的类都必须得实现

               java.lang.Coineable接口,但该接口确实空的,该接口中没有任何内容,目的只是为了起个标志作用

2. 接口提供了不同对象进行协作的平台

      如:事件处理

3. 接口可以实现多继承,从一定程序上弥补了类只能但继承的缺陷。

4. 接口是我们了解一个类功能的重要途径

        如:Java整个容器框架就是以接口的方式建立起来的,实现不同接口的类完成的是不同的功能,接口使我们了解一个类的重要途径

三.接口与抽象类区别

1. 接口中的方法不允许有方法体,但抽象类允许

2. Java类不允许多继承,接口允许多继承

 

0 0
原创粉丝点击