Java 读书笔记9 接口
接口
抽象类:
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. 接口的作用 向上转型为多个父类(接口类),同时防止创建对象
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++多重继承不知道继承谁的问题了;
适配器 (需要重点复习)
插座示例
工厂类
- 和适配器一样,属于模式上的事情;所以日后再说?
Java 读书笔记9 接口相关推荐
- Java读书笔记(4)-多线程(二)
Java读书笔记(4)-多线程(二) 2016-1-2 线程通信 传统的线程通信 Object类提供了wait(),notify()和notifyAll三个方法 适用情况:synchronized修饰 ...
- head first java读书笔记
head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...
- Effective Java 读书笔记(七):通用程序设计
Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...
- #java读书笔记#面向对象2
上一篇java读书系列笔记文章:#java读书笔记#面向对象1 14.Math类的使用(重点) (1)数学操作类:该类没有构造函数,方法均为静态的 (2)掌握内容 A:成员变量 **E:比任何其他值都 ...
- think in java 读书笔记 2 —— 套接字
目录 think in java 读书笔记 1 --移位 think in java 读书笔记 2 -- 套接字 think in java 读书笔记 3 -- 数据报 概要 1. 套接字基本知识 2 ...
- Java读书笔记(8)-单例模式
Java读书笔记(8)-单例模式 今天在阅读<Effective Java 2>第3条时,获知一种使用枚举enum实现单例模式的新方法,然而书上并没有就此展开深入说明,于是上网查阅了一些资 ...
- Effective Java读书笔记(二)
Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...
- Effective Java 读书笔记(一)
前言: 开个新的坑位,<effective java>的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了.今天这篇主要 ...
- Effective Java读书笔记完结啦
Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...
最新文章
- androidsdktools安装_如何命令行安装Android SDK Build Tools(构建工具)?
- LiveVideoStackCon 倒数计时:0
- mysql select db error_select error:不能用DB-library(如isql)不能用DB-library(如isql
- python 类和对象 有必要学吗_类与对象-python学习19
- 那些地方会用C语言多线程,如何用C语言实现多线程
- php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数
- 一文总结Java\JDK 17发布的新特性
- NET防SQL注入方法
- 【UML】时序图Sequence diagram(交互图)(转)
- 【Hive】动态分区插入
- equals 跟== 的区别
- Atitit 信息链(Information Chain)的概念理解 attilax总结
- Android WebView下载使用教程
- 怎样将图片变成圆形?教你裁剪图片的方法
- Outlook邮箱注册详解教程
- Hibernate框架基础——cascade属性
- Oracle-基本SQL语句
- Docker服务的重启服务命令(systemctl restart docker)
- 985毕业的“搬砖人”,从“挂科废材”到程序员,这样的意外崛起,他到底经历了什么?
- (codewars)Simple Pig Latin