黑马程序员——接口interface

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

/*
    接口
interface {}
接口中的成员修饰符是固定的。
 成员常量:public static final
 成员函数:public  abstract
接口的出现将“多继承”通过另一种形式体现出来,即“多实现”


接口:初期理解,可以认为是一个特殊的抽象类
    当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class 用于定义类
interface 用于定义接口
接口定义,格式特点:
    1.常量 抽象方法
    2.固定修饰符:
        成员常量:public static final
(方法)成员函数:public  abstract

记住:接口中的成员都是public的

接口是不能创建对象的,因为有抽象的方法。
需要被子类的实现,子类的接口中的抽象方法全都覆盖之后,子类才可以实例化。
否则子类是一个抽象类。

接口可以被类多实现(即使方法名称相同,但【无】方法主体,下面实现只需覆盖一次即可,可由子类任意定义),
也是对多继承的转换形式,java支持多实现,
    ——java不支持多继承,【有】方法主体,父类中的方法有重复,导致子类调用出现问题

    类与类之间是继承关系,类与接口之间是实现关系,接口与接口之间是继承关系(有内容是实现,无内容是继承)
      【类与类】之间支持【单】继承。
只有在【接口与接口】之间支持【多】继承
*/

interface Inter
{
    public static final int NUM = 3;//全局常量,常量要大写
    public abstract void shou();//因没有方法主题可以让子类任意定义

}
interface InterA
{
    public abstract void method();

}
class Demo
{
    public void function(){}
}

class Test extends Demo implements InterInerA//Test 实现了 Inter,InterA【多实现】 InterInerA
//【 implements v.实现】【 extends v.延伸】

//一个类在继承了一个类同时 还是可以实现多个借口
//普通类继承:父类中有非抽象内容可以继承过来使用
//接口,全都都是抽象,将接口的抽象全都实现后才能实例化
{
    public  void shou(){}
    //接口比较特殊,接口内成员都是public的【固定的】,要覆盖接口,权限是需要一样大,public修饰
    //抽象类不同可以自己设置权限
    public void method(){}
}
interface A
{
    void methodA();
    //int show();//返回值为int
}
interface B //extends A
{
    void methodB();
    //boolean show();//返回值为boolean
}
interface C extends B,A//AB方法中show的返回值不同无法继承,是错误的
{
    void methodC();
}
interface D extends C//需要建立 D 的对象 需要覆盖三个方法
{
    public void methodA(){}
    public void methodB(){}
    public void methodC(){}
}


class  InterfaceDemo
{
    public static void main(String[] args) 
    {
        Test t = new Test();//新建一个Test对象
        System.out.println(t.NUM);//对象 调用成员
        System.out.println(Test.NUM);//类 调用
        System.out.println(Inter.NUM);//编译之后生成三个文件 Inter.class  InterfaceDemo.class Test.class

        //t.NUM = 4; //常量是无法重新赋值的
    }
}
/*
视屏 96——接口的特点

接口是对外暴露的规则
接口是程序的功能扩展
接口可以用来多实现
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
接口与接口之间可以有继承关系


【基本】功能定义在【类】中  
【扩展】功能定义在【接口】中

*/
abstract class Student
{
    abstract void study();
    void sleep()
    {
        System.out.println("sleep");
    }
    //abstract void smoke();//不是共性行为

}
interface Smoking//特有行为
{
    void smoke();
}
class ZhangSan extends student implements Smoking//继承studet共性之后,还可以扩展(特有行为)继承之外扩展其他功能
//功能扩展
{
    void study(){}
    public void smoke(){}//必须有public 

}
class LiSi extends Student
{
}


class  
{
    public static void main(String[] args) 
    {
        System.out.println("Hello World!");
    }
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值