首页 > 编程 > Java > 正文

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

2019-11-06 07:40:28
字体:
来源:转载
供稿:网友
说到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;//父类引用指向子类对象食物 咖喱饭=  咖喱块.让汤汁变粘稠(食物 咖喱配菜,水水);//这是一碗清淡的咖喱饭,为什么呢?//自己想,还要想想怎么做出原味咖喱和变态辣咖喱~//现在可以开吃啦}}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表