黑马程序员_Java基础[15]_接口

本文详细阐述了Java接口的概念、特点以及如何实现接口。包括接口的定义、接口中的成员特性、实现接口的方式以及接口之间的继承关系。通过具体示例展示了如何在一个类中实现多个接口,并解释了接口在模块化开发中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------- android培训 java培训、期待与您交流! ----------

【【接口】】
格式:interface{}


接 口的出现将“多继承”通过另一种形式体现出来,即“多实现”    

    【接口】:初级理解,可以认为是一个特殊的抽象类。
    一个抽象类中可以有抽象方法和非抽象方法
    当一个抽象类中的方法全都是抽象的,那么该类可以通过接口的形式来表示

    关键字:interface  用于定义接口
    关键字:class      用于定义类
    
    接口定义时,格式特点:
    1,接口中的常见定义:常量,抽象方法。
    2,接口中的成员修饰符是固定的

        成员常量:public static final
        成员函数:public abstract
    记住:
        接口中的成员都是public的
    接口是不能创建对象的。因为有抽象方法。
    需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化
    否则子类是一个抽象类
    
    关键字【implements】实现  雷同与继承 extends
    
    
    接口可以被类多实现:一个类可以实现多个接口.(多继承的另一种体现)
 */
package DayXuexi;
interface Inter{
    public static final int NUM=3;
    public abstract void show();
}

interface InterA{
    public static final int NUN=6;
    public abstract void method();
}
class Demo{
    public void function(){}
}
//implements新的关键字,雷同与继承,不过这里叫实现。因为父类都是抽象的,子类必须去实现
class Test implements Inter,InterA{
    
    public  void show(){}
    public void method(){}
    //一个类可以实现多个接口
}
//【】一个类在继承一个类的时候,可以实现多个接口
class TestA extends Demo implements Inter,InterA{
    public  void show(){}
    public void method(){}
}
/*类与类之间是继承关系
 * 接口和接口之间也有关系叫【继承】
 * 并且接口可以多继承

 */

interface A{
    void methodA();
}
interface B extends A{
    void methodB();
}
interface C extends B{
    void methodC();
}
interface F{
    void methodF();
}
//接口多继承
interface G extends F,B{
    void methodG();
}
class D implements C{
    /*这个类想要创建对象必须覆盖几个方法?3个写完才能编译过去。
     * 想要实现必须加public

     */
    public void methodC() {
    }
    public void methodB() {
    }
    public void methodA() {
    }
}
/* 接口多继承
 * 如果被继承的接口中有相同方法名且返回类型不同的方法时,
 * 切记不可同时继承,程序会不知道返回那一个

 */

class H implements G{
    public void methodB() {}
    public void methodA() {}
    public void methodG(){}
    public void methodF(){}
}



public class Demo_interface {
    public static void main(String []args){
        Test t=new Test();
        //  三种方式都能调用。
        System.out.println(t.NUM);              //对象调用
        System.out.println(Test.NUM);       //类名调用
        System.out.println(Inter.NUM);       //接口调用
    }

}
----------------------------------------------------------------------------------------------------------

【【接口2】】

package DayXuexi;
/*
 * 【接口】的特点
 * 1,接口是对外暴露的规则
 * 2,接口是程序的功能扩展,                       (后期由子类实现
 * 3,降低了耦合性,便于模块化开发
 * 4,接口可以用来多实现
 * 5,类与接口之间是实现关系,而且类可以继承一个类的同事实现多个接口
 * 6,接口与接口之间可以有继承、多继承关系。

 *
 * 耦合性,精密联系程度
 */
abstract class StudentA{
    abstract void study();
    void sleep(){
        System.out.println("sleep");
    }
    /*  抽烟不是所有学生的共性行为。
    void smoke()
    {
        System.out.println("smoke");
    }
    */
}
/*把抽象 提取出来,需要的时候在用*/
interface Smoking{
    void smoke();
}
class Zhangs extends StudentA implementsSmoking {
    void study(){}
    public void smoke(){
        
    }
}
/*学生都具备学习,睡觉的共性,而抽烟只是某些人有,所有不能放在一起
 * 来一个学生有抽烟就实现抽烟的接口,没有就不实现
 * 同时,老师也有抽烟的,那么这个接口直接拿来用即可。
 *
 * 就是说,我们在实际开发中的时候,首先抽取事物的共性,编写父类,
 * 同时提取一些有/部分有 的共性 封装成接口。
 *
 * 子类实现的时候,调用父类中所有的共性,而需要接口中的特性时,再实现即可。
 * 父类是基本功能,接口是扩展功能。

  我的理解就是:父类只是给了一个大概
 */

public class Demo_interface_2 {

}




---------- android培训、 java培训、期待与您交流!----------
黑马官网: http://edu.youkuaiyun.com/heima
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值