java接口



/*********************************什么是接口*************************/
//1、硬件接口:指的是两个硬件设备之间的连接方式,硬件接口既包括物理上的接口,还包括逻辑上的数据传送协议
//2、软件接口:程序代码,特殊的类,表示一种范围,(java中)是具有的N个方法的特征集合
//eg:在封装之前 显示器封装了很多电子元件 最终向外报漏的数据交互的孔-->接口 (为了实现设备和设备之间的桥梁)
// 在java中,接口表示一种规范的/约束/要求实现者必须遵循该规范:用来约束使用者该怎么做
//硬件当中的USB就是一个接口的抽象概念,
//定义:接口只是定义了类的应当遵循的规范,却不关心这些类的内部数据和其功能的实现细节,站在程序的角度上说,接口只规定了类必须好提供的方法,从而分离了规范和实现,增强了系统的拓展性和可维护性。
/*********************************面向对象的编程*************************/
//接口和实现类体现了真正的多态
/*********************************java中的接口*************************/
//专家:多个抽象类的抽象就是接口 (其实接口就是抽象类的一种 在.java文件反编译的class文件当中我们可以看到 interface IWalkable == abstract interface IWalkable)
//在java中最小的程序单元就是类 接口就是一个特殊的类 、java中的接口表示规范,用于定义一组抽象方法,要求实现类必须实现该方法并提供方法实现
//定义类语句:[pubilc] class 类名{}
//定义类语句:[pubilc] interface 接口名{};在这里还没考虑接口的父接口等等**
//接口起名问题:表示具有某些能力的,有人习惯以able/handler结尾   有的公司或者个人习惯以i打头,表示接口。
/*********************************java中的接口需要的成员*************************/
//1、接口中没有构造器 ,推论L接口是不能new的 (不能创建对象)  接口中不能定义普通方法
//2、接口中定义的成员变量 实质是全局静态常量 默认是public static final 来修饰
//3、接口中定义的方法都是公共的抽象方法 默认使用public abstract 来修饰方法 (就像在下面的 IWalkable 中  里面void walk();就等同于 public abstract void walk();    )
//4、接口中的定义内部类 都是公共的静态内部类  使用public static 来修饰内部类

/*********************************常量接口*************************/
// 常量接口:有人喜欢使用接口来封装多个常量信息 我们称之为常量接口 其目和常量类相同(不推荐)
// 标志接口:接口中没有任何成员,就仅仅是一个接口的定义,就是一个标志,其他的类实现该接口,就属于该家族,我们可以通过第三方代码赋值该接口实现类特殊的功能(不推荐)
//咱们使用的方法 主要包含了抽象方法
/*********************************接口特点*************************/
//接口不存在构造方法 也不能显示定义构造器 不能实例化 不能new
//接口只能继承接口 不能继承类 且接口支持多继承(类是单继承关系)    ---->  [修饰符]interface 接口名字 extends 接口1 接口2
//接口里面的方法全是抽象的 默认修饰符是 public abstract
//接口里面的字段全是全局静态常量 默认修饰符是 public static fianl
//接口里面内部类全是公共的静态的,默认修饰符是public static

/*********************************接口的实现者就是:实现类*************************/
//接口仅仅只是定义了某些事物应有的功能,但是并没有提供实现  此时,我们需要提供实现类去实现接口 并覆盖 接口中的方法 从而实现类接口定义的功能
/*********************************类实现接口的语法 *************************/
//[修饰符] class 类名 extends 父类 implement 接口1 接口2 {}   (语法:一个类可以实现多个接口,从而祢补了类的单继承关系)


/*********************************继承关系*************************/
//类和类之间存在继承关系:使用extends来表示
//接口和接口之间只能是继承关系:使用extends来表示
//接口和实现类之间只能是实现关系(继承关系):使用implements来表示  (接口是实现类的父类,)
    //-----> 接口变量 == 创建实现类对象 (体现了多态思想)
    // 接口和实现类的多态关系才是我们今后见的最多的
    // 下方定义类Cat要是想实现接口当中的方法就必须把 walk使用public修饰符(那是因为接口是一个抽象的父类 这个父类所有定义的方法都是默认public的 所以子类实现的时候 也需要添加public修饰符)




interface IWalkable{
    void walk();
//    interface ABC();
//    IWalkable(); 不能显示构造器
}
interface ISwimable {

}
//猫
 class  Cat implements IWalkable{
    public void walk(){
        System.out.println("猫");
    }

}
class  dog  implements IWalkable{
    public void walk(){
        System.out.println("狗");
    }
}
//鱼   一个接口对多个类
class Fish extends Animal implements ISwimable,IWalkable{

   public void walk(){

   }

    public void swim(){
        System.out.println("鱼");
    }
}
class Animal{

}
interface Amph extends IWalkable,ISwimable{


}

public class Main {
    public static void main(String[] args){
        System.out.println("aa");
//        new IWalkable();  不能new 接口
//        Cat c = new Cat();/*唾弃 这种写法没意义 要实现面向接口的编程 请看下面的代码*/
//        c.walk();
        IWalkable w = new Cat();/*实现面向接口的编程 实现子类的方法 所以需要父类的指针指向子类的对象 从而实现子类的方法 进行输出*/
        IWalkable i = new dog();
        ISwimable s = new Fish();
        Fish fish = new Fish();
        fish.swim();
        w.walk();
        i.walk();


    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 写接口测试框架,找了有道翻译API来当测试数据 来个链接:http://ai.youdao.com/docs/ap...
    无痕Q阅读 1,819评论 0 2
  • 本人由于实际开发中由于项目原因或者是个人原因很多东西都是处于模棱两棵状态,导致后面后面在实际开发中对很多东西都理解...
    Ray丶Cxy阅读 487评论 2 5
  • 1.接口中不可以有实例域或静态方法,但是可以有常量2.不能使用new运算符实例化一个接口3.可以声明一个接口的变量...
    这是朕的江山阅读 1,331评论 0 0
  • Java基础学习---Java接口 最近新入职,公司没有给安排活,给了充足的时间去重新梳理Java基础的知识,趁此...
    mance阅读 171评论 0 0
  • 人与人之间的差别很大,心路历程差别更大。同一件事在不同的人身上反应出来的效果是不一样的。但是,总有一些体验是一样的...
    叶林呀阅读 189评论 0 0