接口

抽象类:

1. 理解起来很容易,比如父类是动物,子类是狗;动物嘛,肯定得会呼吸;
public class Animal {protected  void breath()  {System.out.println("breath");}}public class Mouse extends Animal {public  static  void  main(String a[]){Animal mouse = new Mouse("11",1);     mouse.breath();     //这里输出的实际上就是mousebreath ,通过父类我们可以随意访问详细对象的方法;//但是实际上,我们几乎不用父类初始化,这样breath方法就显得没有意义;//那把他定义为抽象有什么好处呢?一目了然,立马就知道子类需要具体实现;//这样就把声明和实现分开了}public  Mouse(String myName, int myid) {super(myName, myid);}@Overrideprotected void breath() {//super.breath();System.out.println("mousebreath");}}

接口

1. 抽象类是说有这么一个父类方法几乎不用,但是又想定义出来,形成继承关系;使得通过父类可以简单调用相应方法;那么接口呢,就是父类中全部的东西都是抽象的;就像是动物,动物有一大堆方法,呼吸啊,吃啊之类的;这个类我们将其接口话,所有implements动物的,都得有这些方法;你不重写就算错
public interface Instrument {int VALUE = 5 ;void  play();void  adjust();
}public class Wind implements  Instrument{public  static  void  main(String a[]){Instrument instrument = new Wind();     //这样就可以访问接口里的属性了;int b =  Wind.VALUE;                     //虽然它是final&static9}@Overridepublic void play() {}@Overridepublic void adjust() {}
}

完全解耦 与适配器类

  1. 书上写的太晕了,完全看不懂;解耦嘛,简单说就是通过接口,把只有继承关系中能用的开放出去;
  2. 抽象类可以不实现接口的方法
  3. 适配器

多重继承

1.当存在继承+接口时,接口不需要实现;2. 接口的作用 向上转型为多个父类(接口类),同时防止创建对象
public interface CanFight {       //不可被创建对象void  fight();
}
public class ActionCharacter {public  void  fight(){System.out.println("fight1");}
}
public class Hero extends  ActionCharacter implements  CanFight{@Overridepublic void fight() {            //此处是不用写的,此处重写父类方法,而不是接口super.fight();System.out.println("fight");}
}
public class Adventure {public  static  void  t(CanFight fight){fight.fight();}public  static  void  t2(ActionCharacter x ){x.fight();}public  static  void  main(String a[]){Hero hero = new Hero();t(hero);t2(hero);}
}

通过继承扩展接口

1. 接口可以通过继承保留父类接口的方法,同时加入自己的,这样接口的扩展性就变得很好;由于接口继承,方法都是未实现的,所以肯定没有重写什么的,也就不会出现c++多重继承不知道继承谁的问题了;

适配器 (需要重点复习)

插座示例

工厂类

  1. 和适配器一样,属于模式上的事情;所以日后再说?

Java 读书笔记9 接口相关推荐

  1. Java读书笔记(4)-多线程(二)

    Java读书笔记(4)-多线程(二) 2016-1-2 线程通信 传统的线程通信 Object类提供了wait(),notify()和notifyAll三个方法 适用情况:synchronized修饰 ...

  2. head first java读书笔记

    head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...

  3. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  4. #java读书笔记#面向对象2

    上一篇java读书系列笔记文章:#java读书笔记#面向对象1 14.Math类的使用(重点) (1)数学操作类:该类没有构造函数,方法均为静态的 (2)掌握内容 A:成员变量 **E:比任何其他值都 ...

  5. think in java 读书笔记 2 —— 套接字

    目录 think in java 读书笔记 1 --移位 think in java 读书笔记 2 -- 套接字 think in java 读书笔记 3 -- 数据报 概要 1. 套接字基本知识 2 ...

  6. Java读书笔记(8)-单例模式

    Java读书笔记(8)-单例模式 今天在阅读<Effective Java 2>第3条时,获知一种使用枚举enum实现单例模式的新方法,然而书上并没有就此展开深入说明,于是上网查阅了一些资 ...

  7. Effective Java读书笔记(二)

    Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...

  8. Effective Java 读书笔记(一)

    前言: 开个新的坑位,<effective java>的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了.今天这篇主要 ...

  9. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

最新文章

  1. androidsdktools安装_如何命令行安装Android SDK Build Tools(构建工具)?
  2. LiveVideoStackCon 倒数计时:0
  3. mysql select db error_select error:不能用DB-library(如isql)不能用DB-library(如isql
  4. python 类和对象 有必要学吗_类与对象-python学习19
  5. 那些地方会用C语言多线程,如何用C语言实现多线程
  6. php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数
  7. 一文总结Java\JDK 17发布的新特性
  8. NET防SQL注入方法
  9. 【UML】时序图Sequence diagram(交互图)(转)
  10. 【Hive】动态分区插入
  11. equals 跟== 的区别
  12. Atitit 信息链(Information Chain)的概念理解 attilax总结
  13. Android WebView下载使用教程
  14. 怎样将图片变成圆形?教你裁剪图片的方法
  15. Outlook邮箱注册详解教程
  16. Hibernate框架基础——cascade属性
  17. Oracle-基本SQL语句
  18. Docker服务的重启服务命令(systemctl restart docker)
  19. 985毕业的“搬砖人”,从“挂科废材”到程序员,这样的意外崛起,他到底经历了什么?
  20. (codewars)Simple Pig Latin

热门文章

  1. python画函数图像
  2. 试题 算法训练 递归输出数字三角形
  3. 腾讯加码社区团购引发热议 中小团购企业将迎战收割潮
  4. CAD零基础入门到精通
  5. 辛苦制作的抖音视频为什么浏览量为0 ?在这里你或许能找到答案!
  6. 默认打开图片是WPS图片,很烦,还老不显示,如何设置默认为WIN10自带的照片查看器
  7. 深度 | 区块链对人工智能的变革:去中心化将带来数据新范式
  8. 传感器的使用:光线传感器
  9. TexStudio/LaTex 进行字体设置
  10. php uv pv,SEO中IP、UV和PV的定义与区别?