Thinking in java-24 Polymorphism 多态
来源:互联网 发布:国有企业发展 知乎 编辑:程序博客网 时间:2024/06/05 21:10
1.多态Polymorphism
多态的初衷是为了让方法的适用性更强,即:当我们写了一个方法时,可以把基类作为参数,而可以将扩展类作为其参数传入;而不是将扩展类作为参数,此时该方法的适用度就没有前者高了。
Polymorphism is the ability of a class instance to behave as if it were an instance of another class in its inheritance tree, most often one of its ancestor classes. For example, in Java all classes inherit from Object. Therefore, you can create a variable of type Object and assign to it an instance of any class.
多态的定义:一个类的实例对象表现起来就像它是其所在继承树其他类的实例一样,通常该类表现地更像其父类。极端情况是,我们创建一个参数为Object类对象的方法,那么我们可以把任意对象传给这个函数。
2.实例Demo
stackoverflow上有该问题相关的Q&A.
这里有个interesting的例子。
public abstract class Human{ public abstract void goPee();}public class Male extends Human{ @Override public void goPee(){ System.out.println("First, stand up..."); }}public class Female extends Human{ @Override public void goPee(){ System.out.println("First, sit down..."); }}public class TestPoly{ public static void main(String[] args){ ArrayList<Human> list = new ArrayList<>(); list.add(new Male()); list.add(new Female()); for(Human human: list) human.goPee(); }}
阅读全文
0 0
- Thinking in java-24 Polymorphism 多态
- Thinking in java : polymorphism
- thinking in java(VI)--polymorphism
- Thinking in java (第三版)第七章 多态性(Polymorphism)
- 学习总结-Thinking In Java Chapter 8 polymorphism
- Thinking in Java --多态
- 【Thinking in Java】多态
- 【学习笔记】Thinking in java (第三版)第七章 多态性(Polymorphism)
- thinking in java ---08多态
- 【Thinking In Java笔记】多态
- Thinking in Java Chapter8 多态
- Java 基础 polymorphism(多态)
- [Java]Thinking in Java
- Think In Java 笔记4 Polymorphism
- thinking in java笔记 8 多态
- Thinking in Java 笔记(第七章 多态)
- Thinking in Java 第8章 多态
- 读thinking in java笔记(七):多态
- laravel(七)-中间件(Middleware)
- 语言结构语句
- 根据后台循环的数据动态弹出提示框,并且实现带有遮蔽层
- rails路由url、具名路由规则
- java ByteArrayOutputStream read()
- Thinking in java-24 Polymorphism 多态
- linux常用命令
- 校园网(锐捷):VLAN绑定错误
- 指针遍历字符
- dango error:DisallowedHost: Invalid HTTP_HOST header: ''. You may need to add u'' to ALLOWED_HOST
- solr-6.6.0window环境搭建
- 习题8-5 使用函数实现字符串部分复制
- 流程控制
- Uncaught TypeError: Cannot set property 'mobile' of undefined