接口——笔记

package com.zpark;
/*
抽象类:
1、定义抽象类:在class前面加上abstract
2、抽象类无法被实例化
3、虽然抽象类无法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的
4、抽象类中可以定义抽象方法;并且抽象方法应该以 : 结束,不能有{} ;
例:public abstract void m1();
5、抽象类中不一定有抽象方法,但是抽象方法必须出现在抽象类中
6、一个非抽象的类继承抽象类,必须将抽象类中的抽象方法覆盖、实现、重写。
——————
接口:
接口也是一种应用类型,可以等同看作类
1、如何定义接口,语法: 修饰符 interface 接口名{ }
2、接口中只能出现常量、抽象方法;
3、接口其实是一种特殊的抽象类,特殊在接口是完全抽象的
4、接口中没有够着方法,无法被实例化
5、接口与接口之间可以“多继承”
6、一个类可以实现多个接口,“实现”可等同看作“继承”
7、一个非抽象的类实现接口,需要将接口中所有的方法实现、覆盖、重写
8、implements是实现的意思,与extends 意义相同

当接口和抽象累都能完成某项功能时,优先选择接口,因为接口可以支持多继承,可以多实现
 */
//接口定义例:
public interface JavaNotes03_JieKou {

    //由于常量都是固定不可再修改,所以必须用public static final修饰,并且可以省略
    public static final String A = "a";
    public static final  double PI = 3.14;
    //接口中的抽象方法都是public abstract,所以也可以省略不写

    public abstract void m1();
    void m2();//也是抽象方法

}

/*
*接口的作用
1、使项目分层,所有层面都面向接口开发,开发效率提高了
2、接口使代码之间耦合度低,就类似与灯泡与灯头,鼠标与电脑,之间,变得可脱离、切换
 */
//例1:
/*public interface CutomerService{
    //定义一个退出系统地方法
    void logout();//抽象
}

public class CustomerServiceIpl implements CutomerService{
    //对接口中的方法实现
    public void logout(){
        System.out.println ("退出系统");
    }
}
*/
//例2:使用接口模拟汽车引擎

//创建引擎接口
public interface Engine {
    void start();//给引擎提供一个能启动的抽象方法
}

//一个具体的引擎实现类ChangAn
public class ChangAn implements Engine {
    public void start(){
        System.out.println ("ChangAn启动");
    }
}

//汽车类
public class Car {
    //引擎,面向接口编程
    Engine e;
    //构造方法,给汽车装上引擎
    Car(Engine e){
        this.e = e;
    }
    //汽车能够测试引擎
    public void testEngine(){
        e.start ();
    }
}

//测试类
public class Test {
    public static void main(String[] args) {
        //生产引擎
//        Engin ChangAn1= new ChangAn ();
        //生产汽车
        //加入此时汽车想换一个引擎测试,只需在写一个引擎实现引擎接口,然后再以此方法测试即可
        Car a = new Car (new ChangAn ());

        a.testEngine ();//测试引擎、



    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值