Java核心卷学习笔记——接口

来源:互联网 发布:apache phoenix 编辑:程序博客网 时间:2024/06/10 19:43

接口

1、接口中可以包含多个方法,这些方法自动地属于public,还可以定义常量;但是接口绝不能含有实例域,更不能在接口中实现方法。

  • class 用于定义类,interface 用于定义接口 ;

public interface Comparable{    int compareTo();    ...}class A{    private String name;    String getName()    {        return name;    }    ...}


2、让类实现一个接口:

  • 将类声明为实现给定的接口
  • 对接口中的所有方法进行定义

class Employee implements Comparable<Employee>{    int compareTo(Employee other)    {        return Double.compare(salary, other.salary);    }}


接口的特性

1、接口不是类,不能使用new运算符实例化一个接口,但可以声明接口的变量。

x = new Comparable();// errorx = new Employee(...);// 接口变量必须引用实现了接口的类对象


2、检查一个对象爱那个是否实现了某个特定接口:

if(anObject instanceof Comparable){...}


3、接口可以被扩展,允许存在多条从具有较高通用性的接口到较高专用性的接口的链,如

// 较高通用性的接口Apublic interface A{    void move();}// 以A为基础 扩展一个叫做B的接口public interface B extends A{    double show();}

4、接口中不能包含实例域或静态方法,但可以包含常量,其常量可以在方法中直接地引用

public interface B extends A{    int static final NUM = 3;// 接口中的域被设为 static final    double show();}

5、尽管每个类只能拥有一个超类,但却可以实现多个接口

class Demo implements A, B{    ...}

6、接口与抽象类

接口可认为是一个特殊的抽象类,可看作是一种没有实例域的抽象类;当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

abstract class Person{    private String name;        public Person(String n)    {        name = n;    }        public abstract String getName()    {        return name;    }}


7、接口不可以被创建对象,因为有抽象方法需要被子类实现:子类对接口中的抽象方法全部覆盖后,子类才可以被实例化,否则子类是一个抽象类



实例

InterfaceDemo.java


interface Inter{public static final int NUM = 3;public abstract void show();}interface InterA{public abstract void show();}class Demo{public void function(){}}class Test extends Demo implements Inter,InterA{public void show(){}}class InterfaceDemo{public static void main(String[] args) {Test t = new Test();System.out.println(t.NUM);System.out.println(Test.NUM);System.out.println(Inter.NUM);}}
输出结果:
3
3
3


0 0
原创粉丝点击