接口定义:一种特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法所组成;

1,接口的定义

接口定义用关键字 interface

package com.xuyigang1234.chp02.interface1;

public interface A {
    /**
     * 定义一个接口A
     * @author user
     *
     */
    public static final String Title="www.java1234.com";
     
    /**
     * 定义一个抽象方法 abstract可以省略  
     */
    public void a();
}

注意点:由于接口里的方法都是抽象的,所以abstract可以省略,实际开发一般都是省略的,开发者的习惯;

 

2,实现接口 可以实现一个或者多个接口

 

实现接口我们用implements关键字,我们来搞一个测试方法:

package com.xuyigang1234.chp02.interface1;

public class Test implements A,B{
    @Override
    public void a() {
        System.out.println("a方法");
        
    }
    @Override
    public void b() {
        System.out.println("b方法");
        
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.a();
        test.b();
        System.out.println(Test.Title);
        System.out.println(Test.Title1);
        
    }

}

实现接口 ,类里要实现接口里的抽象方法;

运行输出:

a方法
b方法
www.java1234.com
www.java.com
3,继承类和实现接口 先继承,后实现接口

先定义一个C类:

package com.xuyigang1234.chp02.interface1;

public class C {
    public void c() {
        System.out.println("c方法");
    }
}
package com.xuyigang1234.chp02.interface1;

public class Test extends C implements A,B{
    @Override
    public void a() {
        System.out.println("a方法");
        
    }
    @Override
    public void b() {
        System.out.println("b方法");
        
    }
    public static void main(String[] args) {
        Test test = new Test();
        test.a();
        test.b();
        test.c();
        System.out.println(Test.Title);
        System.out.println(Test.Title1);
        
    }

}

运行输出:

 a方法
b方法
c方法
www.java1234.com
www.java.com
4,接口的继承  接口可以多继承
定义一个D接口 继承A,B接口:

package com.xuyigang1234.chp02.interface1;

public interface D extends A,B {
    public void d();

}
package com.xuyigang1234.chp02.interface1;

public class Test2 extends C implements D {

    @Override
    public void a() {
        System.out.println("a方法");
        
    }

    @Override
    public void b() {
        System.out.println("b方法");
        
    }

    @Override
    public void d() {
        System.out.println("d方法");
        
    }
    public static void main(String[] args) {
        Test2 t2= new Test2();
        t2.a();
        t2.b();
        t2.c();
        t2.d();
        System.out.println(Test2.Title);
        System.out.println(Test2.Title1);
    }

}

输出:

a方法
b方法
c方法
d方法
www.java1234.com
www.java.com