关于Java封装、继承、多态的生动例子——咖喱块

说到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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值