接口的探究

第一次用 markdown (^-^)V 试试手

1、接口的概念

特殊的抽象类

2、接口的特点

1、实现了类的多继承
2、解耦合
3、增加了程序的通用性

3、接口与抽象类的区别

类别 属性 方法
抽象类 可以不赋值 1、作为父类,可以有其他方法2、作为子类,继承关键字为extends(单继承类,多继承接口) 3、其实现的子类,为public
接口 必须赋值 1、作为父类,必须是抽象方法(abstract可省略)2、作为子类,继承关键字:implements(可多继承接口)3、其实现的子类,为public

最后贴上练习代码君:

package com.jacob.javase;

/*
 * 接口:
 * 1.概念:
 * 接口是特殊的抽象类
 * 2.关键字
 * 3.好处:
 * 3.1 增加了程序的通用性
 * 3.2 实现了特殊的多继承:
 * 例如: 1.手机可以分为拍照手机和通用手机
 *      2.照相机可以分为单反照相和数码照相
 *      3.那照相又可以分为拍照手机和照相机
 * 3.3 解耦合
 * 
 */
// 2.1 Interface:代替class的书写//
// 注意点:接口中全是抽象方法且 abstract可忽略不写
interface MyIntf1 {
    // 属性必须初始化(抽象类不需要)
    int id = 1;
    String name = "xieji";

    public void m1();

    void m2();
}

// 2.2.1 extends :接口可以继承接口;相当于并集——不需要覆写父类接口的方法
// 2.2.2 接口可以多继承接口(不能继承类)
// 2.2.3 注意点:子类是接口的时候:关键字只能使用extends
// 子类是类的时候,关键字只能使用implements
interface MyIntf2 extends MyIntf1 {
    void m3();
}

// 2.3 implements:类继承接口:类可多继承接口
public class InterfaceTest implements MyIntf2 {
    // 2.3.1 需要覆写继承接口的全部方法且访问修饰符必须是public
    public void m1() {
        System.out.println("覆写m1");
    }

    public void m2() {
        System.out.println("覆写m2");
    }

    public void m3() {
        System.out.println("覆写m3");
    }

    public static void main(String[] args) {
        // 实例化找其子类
        MyIntf1 a = new InterfaceTest();

    }
}
原文地址:https://www.cnblogs.com/xieji233/p/6155634.html