java对外查询接口注意的地方_Java接口注意点
1、接口可以多實(shí)現(xiàn):一個(gè)實(shí)現(xiàn)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口
package com.qf.demo02_interface;
//定義一種規(guī)則:
interface A{
public void testA();//
public void fun();
}
//定義另一種規(guī)則
interface B{
public void testB();
public void fun();
}
//實(shí)現(xiàn)類,實(shí)現(xiàn)接口A。滿足接口的規(guī)則:其實(shí)就是要實(shí)現(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類,實(shí)現(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、接口可以多繼承
類中的方法:有聲明有實(shí)現(xiàn)的方法。
接口中方法:有聲明,沒(méi)有實(shí)現(xiàn)。將功能的描述,和功能的實(shí)現(xiàn),分離開(kāi)。
package com.qf.demo03_interface;
//一種規(guī)則
interface C{
public void testC();
}
//另一種規(guī)則
interface D{
public void testD();
}
//接口可以繼承多個(gè)父接口
interface E extends C,D{
public void testE();
}
//實(shí)現(xiàn)類,實(shí)現(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、一個(gè)類如果實(shí)現(xiàn)接口了,還能繼承其他的父類嗎?可以的
意味著,一個(gè)類繼承了一個(gè)父類:那么就可以直接使用父類的非私有化的屬性和方法。
同時(shí),還實(shí)現(xiàn)接口某個(gè)接口規(guī)則。
這個(gè)類即作為一個(gè)父類的子類,又作為了一個(gè)接口的實(shí)現(xiàn)類。
package com.qf.demo04_interface;
//表示一種協(xié)議,一種規(guī)則
interface H{
public void testH();
public void fun();
}
//繼承?is - a,子類是一個(gè)特殊的父類
class M{
public void testM(){
System.out.println("我是M類的方法。。");
}
public void fun(){
System.out.println("M類中的fun方法。。。");
}
}
//定義一個(gè)類:N
//繼承了父類M:意味著N這個(gè)類可以直接使用父類的非私有化的屬性和方法。
//同時(shí)實(shí)現(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) {
//課間思考題:一個(gè)類可以繼承父類的同時(shí),再實(shí)現(xiàn)接口嗎?
M m = new N();//父類引用,指向子類的對(duì)象:一種對(duì)象的多態(tài)
m.testM();
m.fun();
System.out.println("-----------------");
H h = new N();//接口引用,指向?qū)崿F(xiàn)類對(duì)象:一種接口的多態(tài)
h.testH();
h.fun();
}
}
4、如果一個(gè)類沒(méi)有實(shí)現(xiàn)接口中的所有的方法,那么它是抽象的
一個(gè)實(shí)現(xiàn)類可以實(shí)現(xiàn)接口,但是如果沒(méi)有實(shí)現(xiàn)全部的方法, 那么該類是抽象的。等待子類繼承,并且實(shí)現(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、接口中的兩個(gè)特殊的方法
1、靜態(tài)方法:
2、默認(rèn)的方法:jdk1.8版本出現(xiàn)的新特性。
目的:不強(qiáng)制一定要實(shí)現(xiàn)某個(gè)功能。
總結(jié)
以上是生活随笔為你收集整理的java对外查询接口注意的地方_Java接口注意点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言趣味程序设计编程100例精解,c趣
- 下一篇: 山东大学 2020级数据库系统 实验二