关于Java封装、继承、多态的生动例子——咖喱块
来源:互联网 发布:rpgmakermv js怎么用 编辑:程序博客网 时间:2024/04/28 16:54
说到Java的三大特性:继承,封装,多态,大家一定有属于自己的理解,而作为一个喜欢吃咖喱饭的吃货来说,把这三个特性诠释得完美无缺的东西就是——咖喱块。
为什么说咖喱块完美符合Java三大特性呢?我们先说第一个:
一、封装
Java中的封装,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,大家都知道,咖喱是“许多的香料加在一起煮”的意思,它由咖喱粉、牛奶/椰奶加入油、盐、白胡椒、茴香等调味料制成,所以它必须具备味道鲜香浓郁的属性以及让汤汁浓稠的方法,大厨们将调和好的咖喱酱处理后制成咖喱块装于包装盒内,身为使用者的我们可以通过加咖喱块制作一份香喷喷的咖喱饭,却无法得知咖喱块制作的具体细节。
private class Curry{
材料 香料1;
材料 香料2;
口味 鲜香浓郁;
public 咖喱饭 让汤汁浓稠(咖喱配菜,水)
{
!@#¥%……&*()……;//其实我也不知道怎么变的,谁叫它封装了呢?捂脸~
return 咖喱饭;
}
}
二、继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。上面我们说了,咖喱块是我们可以直接拿到的对象,我们拿到咖喱块后又发现了新的问题,湖南人、四川人吃的辣,而沿海的人口味偏淡,如何解决呢?我们就需要DIY一份属于自己口味的咖喱饭了,具体操作看代码。
class HuNanCurry extends Curry{
材料 香料1;
材料 香料2;
口味 鲜香浓郁;
public 咖喱饭 让汤汁浓稠(咖喱配菜,水 水)
{
{
!@#¥%……&*()……湖南人加辣椒
return 咖喱饭;
}
}
class FuJianCurry extends Curry{
材料 香料1;
材料 香料2;
口味 鲜香浓郁;
public 咖喱饭 让汤汁浓稠(咖喱配菜,水 水)
{
{
!@#¥%……&*()……福建人加水;
return 清淡的咖喱饭;
}
}
三、多态
多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式,多态必须满足三个条件(1、需继承 2、需重写父类方法3、父类引用指向子类对象),这里就要提到上面的DIY咖喱饭咯,它有两个子类,分别是湖南咖喱和福建咖喱,而且都重写了父类的方法,那什么叫父类引用指向子类对象呢?我们来设想一个情况,当一个湖南的小盆友对妈妈说,今天我们吃咖喱饭吧,这里的咖喱饭指的就是湖南的变态辣咖喱,如果是福建的小盆友说这句话,指的就是加水的清淡咖喱,他们所说的咖喱饭,其实都指向了curry的子类HunanCurry或者FuJianCurry,这就是多态的三大条件,让我们试想调用以后的样子……
class CurryTest
{
public static void main (String [] args)
{
Curry 咖喱块=new FuJianCurry;//父类引用指向子类对象
食物 咖喱饭= 咖喱块.让汤汁变粘稠(食物 咖喱配菜,水水);//这是一碗清淡的咖喱饭,为什么呢?
//自己想,还要想想怎么做出原味咖喱和变态辣咖喱~
//现在可以开吃啦
}
}
0 0
- 关于Java封装、继承、多态的生动例子——咖喱块
- java接口的一些生动的例子
- java接口的一些生动的例子
- Java的特性—封装、继承和多态
- 关于Java的封装 继承 多态
- JAVA 的多态、继承与封装
- java基础--关于封装、继承、重写与多态
- java入门学习(6)—封装,继承,多态,this,super,初始代码块
- Java 封装,继承多态
- 继承——代码块的继承
- 关于块语法的封装
- Java—隐藏封装、继承
- java—封装、继承、多态
- Python中关于封装,继承,多态的表述
- 一个关于封装、继承、多态的问题
- 关于封装、继承和多态的复习
- 黑马程序员java学习笔记——面向对象的特征封装、继承和多态
- 面向对象——Java的封装、继承和多态
- 62. Unique Paths
- MyEclispe我的常用操作---持续更新。
- 矩阵中的“二分查找”
- iOS学习笔记-035.数据的读取——系统偏好的写入和读取
- 3.转换成BCNF的保持无损连接的分解
- 关于Java封装、继承、多态的生动例子——咖喱块
- Activity传递Bitmap对象
- js倒计时
- Apache服务器的三种mpm模式介绍:Prefork,Worker和Event
- bootstrap-组合上、下拉框
- jeeplus小记录
- 6.揭秘angular2学习 ------- 指令
- .NET学习路线图
- java 微信接入 关注和取消关注