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