Java面向对象-接口
接口定义:一种特殊的“抽象类”,没有普通方法,由全局常量和公共的抽象方法所组成;
1,接口的定义
接口定义用关键字 interface
我们给下实例代码:
package com.java1234.chap03.sec12; /** * 定义一个接口A * @author user * */ public interface A { /** * 全局常量 */ public static final String TITLE="www.java1234.com"; /** * 定义一个抽象方法 abstract可以省略 */ public abstract void a(); }
注意点:由于接口里的方法都是抽象的,所以abstract可以省略,实际开发一般都是省略的,开发者的习惯;
2,实现接口 可以实现一个或者多个接口
实现接口我们用implements关键字,我们来搞一个测试方法:
package com.java1234.chap03.sec12; public class Test implements A{ @Override public void a() { System.out.println("a方法"); } public static void main(String[] args) { Test t=new Test(); t.a(); System.out.println(Test.TITLE); } }
实现接口 ,类里要实现接口里的抽象方法;
运行输出:
a方法
www.java1234.com为了演示实现多个接口,我们这里再定义一个接口:
package com.java1234.chap03.sec12; /** * 定义一个接口B * @author user * */ public interface B { /** * 全局常量 */ public static final String TITLE2="java知识分享网"; /** * 定义一个抽象方法 abstract可以省略 */ public abstract void b(); }
我们修改下Test类:
package com.java1234.chap03.sec12; 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 t=new Test(); t.a(); t.b(); System.out.println(Test.TITLE); System.out.println(Test.TITLE2); } }
实现多个接口,中间用逗号隔开,并且实现所有抽象方法:
运行输出:
a方法
b方法
www.java1234.com
java知识分享网
3,继承类和实现接口 先继承,后实现接口
我们先定义一个类C:
package com.java1234.chap03.sec12; public class C { public void c(){ System.out.println("c方法"); } }
我们再修改下测试类Test 继承C类,实现A,B接口,这里有个注意点,java规范,必须先继承后实现接口;
我们上下代码:
package com.java1234.chap03.sec12; 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 t=new Test(); t.a(); t.b(); t.c(); System.out.println(Test.TITLE); System.out.println(Test.TITLE2); } }
运行输出:
a方法
b方法
c方法
www.java1234.com
java知识分享网
4,接口的继承 接口可以多继承
我们定义一个D接口 继承A,B接口:
package com.java1234.chap03.sec12; public interface D extends A,B{ public void d(); }
这里再加一个d方法;
我们重新搞一个测试方法 继承C类,实现D接口:
package com.java1234.chap03.sec12; 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 t=new Test2(); t.a(); t.b(); t.c(); t.d(); System.out.println(Test2.TITLE); System.out.println(Test2.TITLE2); } }
运行输出:
a方法
b方法
c方法
d方法
www.java1234.com
java知识分享网
上一篇:Java面向对象-抽象类
下一篇:Java面向对象-对象的多态性