java对外查询接口注意的地方_Java接口注意点
1、接口可以多實現(xiàn):一個實現(xiàn)類可以同時實現(xiàn)多個接口
package com.qf.demo02_interface;
//定義一種規(guī)則:
interface A{
public void testA();//
public void fun();
}
//定義另一種規(guī)則
interface B{
public void testB();
public void fun();
}
//實現(xiàn)類,實現(xiàn)接口A。滿足接口的規(guī)則:其實就是要實現(xiàn)接口中所有的抽象方法。
class DemoA implements A,B{
@Override
public void testA() {
System.out.println("DemoA類,滿足接口A的規(guī)則。。。");
}
@Override
public void testB() {
System.out.println("DemoA類,也滿足接口B的規(guī)則。。。");
}
@Override
public void fun() {
System.out.println("DemoA類,實現(xiàn)類fun方法。。。");
}
}
public class Test1Interface {
public static void main(String[] args) {
A a = new DemoA();
a.testA();
a.fun();
B b = new DemoA();
b.testB();
b.fun();
DemoA demoA = new DemoA();
demoA.testA();
demoA.testB();
}
}
2、接口可以多繼承
類中的方法:有聲明有實現(xiàn)的方法。
接口中方法:有聲明,沒有實現(xiàn)。將功能的描述,和功能的實現(xiàn),分離開。
package com.qf.demo03_interface;
//一種規(guī)則
interface C{
public void testC();
}
//另一種規(guī)則
interface D{
public void testD();
}
//接口可以繼承多個父接口
interface E extends C,D{
public void testE();
}
//實現(xiàn)類,實現(xiàn)接口E
class DemoB implements E{
@Override
public void testC() {
System.out.println("C協(xié)議。。");
}
@Override
public void testD() {
System.out.println("D協(xié)議。。");
}
@Override
public void testE() {
System.out.println("E協(xié)議。。。");
}
}
public class Test3Interface {
public static void main(String[] args) {
C c = new DemoB();
c.testC();
D d = new DemoB();
d.testD();
E e = new DemoB();
e.testC();
e.testD();
e.testE();
}
}
3、一個類如果實現(xiàn)接口了,還能繼承其他的父類嗎?可以的
意味著,一個類繼承了一個父類:那么就可以直接使用父類的非私有化的屬性和方法。
同時,還實現(xiàn)接口某個接口規(guī)則。
這個類即作為一個父類的子類,又作為了一個接口的實現(xiàn)類。
package com.qf.demo04_interface;
//表示一種協(xié)議,一種規(guī)則
interface H{
public void testH();
public void fun();
}
//繼承?is - a,子類是一個特殊的父類
class M{
public void testM(){
System.out.println("我是M類的方法。。");
}
public void fun(){
System.out.println("M類中的fun方法。。。");
}
}
//定義一個類:N
//繼承了父類M:意味著N這個類可以直接使用父類的非私有化的屬性和方法。
//同時實現(xiàn)接口H:意味著滿足接口H中的所有規(guī)則:抽象方法。。
class N extends M implements H{
@Override
public void testH() {
System.out.println("滿足了接口H的協(xié)議規(guī)則。。");
}
//父類的fun方法,一旦存在繼承關(guān)系,相當(dāng)于子類也有一份。
//public void fun(){
//System.out.println("M類中的fun方法。。。");
//}
}
public class Test4 {
public static void main(String[] args) {
//課間思考題:一個類可以繼承父類的同時,再實現(xiàn)接口嗎?
M m = new N();//父類引用,指向子類的對象:一種對象的多態(tài)
m.testM();
m.fun();
System.out.println("-----------------");
H h = new N();//接口引用,指向?qū)崿F(xiàn)類對象:一種接口的多態(tài)
h.testH();
h.fun();
}
}
4、如果一個類沒有實現(xiàn)接口中的所有的方法,那么它是抽象的
一個實現(xiàn)類可以實現(xiàn)接口,但是如果沒有實現(xiàn)全部的方法, 那么該類是抽象的。等待子類繼承,并且實現(xiàn)抽象方法。
package com.qf.demo05_interface;
interface K{
public void test1();
public void test2();
}
abstract class KImpl implements K{
@Override
public void test1() {
}
}
class L extends KImpl{
@Override
public void test2() {
}
}
public class Test5 {
public static void main(String[] args) {
}
}
5、接口中的兩個特殊的方法
1、靜態(tài)方法:
2、默認(rèn)的方法:jdk1.8版本出現(xiàn)的新特性。
目的:不強(qiáng)制一定要實現(xiàn)某個功能。
總結(jié)
以上是生活随笔為你收集整理的java对外查询接口注意的地方_Java接口注意点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言趣味程序设计编程100例精解,c趣
- 下一篇: artifacts屏蔽java文件输出_