java全栈day10--接口 多态
接口的概念
接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。
接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。
请记住:一切事物均有功能,即一切事物均有接口。
接口的定义与定义类的class不同,接口定义时需要使用interface关键字
如:
interface Demo { ///定义一个名称为Demo的接口。
public abstract void lijun1();
public abstract void lijun2();
}
定义子类去覆盖接口中的方法。类与接口之间的关系是 实现。通过 关键字 implements
class DemoImpl implements Demo { //子类实现Demo接口。
//重写接口中的方法。
public void lijun1(){}
public void lijun2(){}
}
多态调用的三种格式
* A:多态的定义格式:
* 就是父类的引用变量指向子类对象
父类类型 变量名 = new 子类类型();
变量名.方法名();
* B: 普通类多态定义的格式
父类 变量名 = new 子类();
举例:
class Fu {}
class Zi extends Fu {}
//类的多态使用
Fu f = new Zi();
* C: 抽象类多态定义格式
抽象类 变量名 = new 抽象类子类();
举例:
abstract class Fu {
public abstract void method();
}
class Zi extends Fu {
public void method(){
System.out.println(“重写父类抽象方法”);
}
}
//类的多态使用
Fu fu= new Zi();
D: 接口多态定义的格式
接口 变量名 = new 接口实现类();
如: interface Fu {
public abstract void method();
}
class Zi implements Fu {
public void method(){
System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();
案例分析
* 阶段一:
使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能
* 阶段二:
想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。
* 阶段三:
还想使用一个键盘 ,又要多一个功能和一个对象
* 问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。
降低鼠标、键盘等外围设备和笔记本电脑的耦合性。
最新文章
- js活动倒计时
- 自旋锁-SpinLock(.NET 4.0+)
- JS生成GUID算法
- php获取本周和上周的开始日期和结束日期
- R 安装与环境配置
- SimpleUrlHandlerMapping用法
- 关于SQL优化的一个小试例子
- 基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,开放源码,支持开源
- Oracle优化技术
- Android单元测试Junit (一)
- (简单) UVA 11624 Fire! ,BFS。
- spring boot跨域设置
- 静态资源压缩(GZIP) 专题
- SSH免密码登录配置
- python语法_注释
- 【Ansible 文档】【译文】Playbooks 变量
- 如何卸载旧版本的dotnet core
- Spring boot(三)在Spring boot中Redis的使用
- 转录组表达量计RPKM、FPKM、TPM说明
- [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures
热门文章
- mapreduce-实现单表关联
- BZOJ3296:[USACO2011OPEN]Learning Language
- Makefile 自动产生依赖 ***
- Azure上批量创建OS Disk大于30G的Linux VM
- H264码流结构分析和rtp打包结构详解
- 浅谈NB_LOT和LTE CAT M1
- 专题练习HDU题集 图论
- Jenkins构建触发器定时Poll SCM、Build periodically
- &;(((struct A*)NULL)->;m_float)---offsetof
- java 多线程系列基础篇(一)