必赢亚洲手机app下载


像素怎样影响你的宏图

拾3个恩爱的办公利器

Java学习笔记10

接口:

一时半刻可以知道为是一种特殊的抽象类

接口是成效的汇集,可以当做是一种数据类型,是比抽象类更抽象的“类”

接口只描述所应有有所的格局,并没有具体贯彻,具体贯彻由接口的落到实处类(相当于接口的子类)来落成

如此将作用的落到实处与概念分离,优化了程序设计

接口的分子方法全抽象,不大概存在带有方法体的方式

接口中无法定义普通的积极分子变量,必须定义为常量

接口定义抽象方法有固定格式

全方位事物皆有意义,即全数事物都有接口

接口的概念规则:

public interface MyInterface {
    public static final int a = 1;
    public abstract void function();
}

 

接口的贯彻类(类和类之间叫接轨,类和接口之间叫落成):

public class MyInterfaceImpl implements MyInterface{
    public void function(){
        System.out.println("实现类,重写接口方法");
    }
}

测试:

public class Test {

    public static void main(String[] args) {
        MyInterfaceImpl my = new MyInterfaceImpl();
        my.function();
    }

}

 

 

接口中成员变量的性状:

留神那里的public static
final多少个修饰词可以省略任意个数,可是效果不变,总是public static
final,提议写全

public interface MyInter {
    //静态的可以用.方式访问
    //final表示不能被修改
    public static final int x = 3;

}

测试:

public class Test {

    public static void main(String[] args) {
        //静态的可以用.方式访问,具体关于static在后边讲
        System.out.println(MyInter.x);
    }
}

 

接口中成员方法的特征:

留神那里的public abstract也是采纳性书写的,无论怎么样效果都以public
abstract,指出写全

public interface MyInter {
    public abstract void function();
}

 

 

贯彻类,完结接口,重写接口全体空洞方法,制造完成类对象

接口不可以创制对象

子类必须覆盖掉接口中兼有的画个饼来解除饥饿方法后,子类才可以实例化,否则子类是二个抽象类

 

接口的多完成:

接口最关键的显示:消除多一连的弊端,将多一连那种体制在java中通过多落成成功了

消除安全隐患原理:接口中的方法全都以虚幻的,没有重点,方法倚重完成类的重写才方可兑现,因而并未平安题材

因此接口的多完成消除了单继承的局限性

举例:

接口A:

public interface A {
    public abstract void a();

    public abstract void c();
}

接口B:

public interface B {
    public abstract void a();

    public abstract void b();
}

多实现:

/*
 * 类C,同时实现两个接口,接口A,B
 * 作为实现类,C必须重写两个接口的所有抽象方法,才可以建立C类对象
 * */
public class C implements A, B {
    public void a() {
    }

    public void b() {
    }

    public void c() {
    }
}

 

类继承类的还要,还能落成接口:

类D:

public abstract class D {
    public abstract void d();
}

C:

//在继承一个类(只能是一个)的同时,实现多个接口
public class C extends D implements A, B {
    public void a() {
    }

    public void b() {
    }

    public void c() {
    }

    public void d() {

    }
}

 

接口存在多一连:

必赢亚洲手机app,出于接口的方法都以空虚的,所以不存在安全隐患

public interface A {
    public abstract void a();
}

public interface B {
    public abstract void b();
}

public interface C extends A,B{
    public abstract void c();
}

public class D implements C{
    public void a(){}
    public void b(){}
    public void c(){}
}

 

 

此处有七个关于java的题材:

java中终归存在多延续吗?

答:类没有多再三再四,接口之间存在多一连

 

 

接口的考虑:

比喻:电脑上有多少个插口,这几个插口可以插入相应的装备,因为这个装备生产的时候符合了这么些插口的运用规则,否则不可以插入使用

接口在支付中的好处:

1.接口的面世恢弘了出力

2.接口其实就是暴漏出来的规则

3.接口的出现降低了耦合性,设备与装备之间完结领悟耦(台式机电脑USB插口是或不是被利用微机都足以运营)

 

 

接口和抽象类的共同点:

1.都置身继承的顶端,用于被其余类落成或接续

2.都不恐怕平素实例化对象

3.都包括抽象方法,其子类都必须覆写那些抽象方法

 

区别:

1.抽象类为一些方法提供完成,防止子类重复完结这么些点子,提升代码的重用性;而接口只可以分包抽象方法

2.一个类只可以继续三个直接父类(大概是抽象类),却得以兑现多个接口,接口弥补了java的单继承

 

心想方面的区分:

抽象类是其一东西中应有具有的始末,继承连串是一种is..a的关联

接口是其一东西中的额外内容,继承系列是一种like…a的涉嫌

伪代码举例:class 贼 extends 人 implements 偷盗

贼自个儿是1人,他得以盗取,不是具备的人都偷盗

 

选用:

1.优先利用接口,尽量少用抽象类

2.索要定义子类的作为,又要为子类提供共性功用时,采用抽象类

 

 

 

综上所述案例(电脑):

public interface USB {
    public abstract void open();
    public abstract void close();
}

public class Mouse implements USB{
    public void open(){
        System.out.println("开启鼠标");
    }

    public void close(){
        System.out.println("关闭鼠标");
    }
}

public class Keyboard implements USB{
    public void open(){
        System.out.println("开启键盘");
    }
    public void close(){
        System.out.println("关闭键盘");
    }
}

public class Computer {
    public void openComputer(){
        System.out.println("笔记本开机");
    }

    public void closeComputer(){
        System.out.println("笔记本关机");
    }
    public void useUSB(USB usb){
        usb.open();
        usb.close();
    }

}

public class Test {
    public static void main(String[] args) {
        //创建笔记本对象,调用笔记本的功能
        Computer com = new Computer();
        com.openComputer();

        //调用笔记本使用USB设备的方法
        //参数,是USB接口类型,接口不能建立对象
        //调用方法,传递USB接口的实现类的对象
        //Mouse m = new Mouse();
        com.useUSB(new Mouse());
        //使用USB设备,使用键盘
        com.useUSB(new Keyboard());

        com.closeComputer();
    }
}

 

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图