java对外查询接口注意的地方_Java接口注意点
1、接口可以多實現:一個實現類可以同時實現多個接口
package com.qf.demo02_interface;
//定義一種規則:
interface A{
public void testA();//
public void fun();
}
//定義另一種規則
interface B{
public void testB();
public void fun();
}
//實現類,實現接口A。滿足接口的規則:其實就是要實現接口中所有的抽象方法。
class DemoA implements A,B{
@Override
public void testA() {
System.out.println("DemoA類,滿足接口A的規則。。。");
}
@Override
public void testB() {
System.out.println("DemoA類,也滿足接口B的規則。。。");
}
@Override
public void fun() {
System.out.println("DemoA類,實現類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、接口可以多繼承
類中的方法:有聲明有實現的方法。
接口中方法:有聲明,沒有實現。將功能的描述,和功能的實現,分離開。
package com.qf.demo03_interface;
//一種規則
interface C{
public void testC();
}
//另一種規則
interface D{
public void testD();
}
//接口可以繼承多個父接口
interface E extends C,D{
public void testE();
}
//實現類,實現接口E
class DemoB implements E{
@Override
public void testC() {
System.out.println("C協議。。");
}
@Override
public void testD() {
System.out.println("D協議。。");
}
@Override
public void testE() {
System.out.println("E協議。。。");
}
}
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、一個類如果實現接口了,還能繼承其他的父類嗎?可以的
意味著,一個類繼承了一個父類:那么就可以直接使用父類的非私有化的屬性和方法。
同時,還實現接口某個接口規則。
這個類即作為一個父類的子類,又作為了一個接口的實現類。
package com.qf.demo04_interface;
//表示一種協議,一種規則
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這個類可以直接使用父類的非私有化的屬性和方法。
//同時實現接口H:意味著滿足接口H中的所有規則:抽象方法。。
class N extends M implements H{
@Override
public void testH() {
System.out.println("滿足了接口H的協議規則。。");
}
//父類的fun方法,一旦存在繼承關系,相當于子類也有一份。
//public void fun(){
//System.out.println("M類中的fun方法。。。");
//}
}
public class Test4 {
public static void main(String[] args) {
//課間思考題:一個類可以繼承父類的同時,再實現接口嗎?
M m = new N();//父類引用,指向子類的對象:一種對象的多態
m.testM();
m.fun();
System.out.println("-----------------");
H h = new N();//接口引用,指向實現類對象:一種接口的多態
h.testH();
h.fun();
}
}
4、如果一個類沒有實現接口中的所有的方法,那么它是抽象的
一個實現類可以實現接口,但是如果沒有實現全部的方法, 那么該類是抽象的。等待子類繼承,并且實現抽象方法。
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、靜態方法:
2、默認的方法:jdk1.8版本出現的新特性。
目的:不強制一定要實現某個功能。
總結
以上是生活随笔為你收集整理的java对外查询接口注意的地方_Java接口注意点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言趣味程序设计编程100例精解,c趣
- 下一篇: java美元兑换,(Java实现) 美元