为什么说咖喱块完美符合Java三大特性呢?我们先说第一个:


一、封装


就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,大家都知道,咖喱是 “许多的香料加在一起煮”的意思,它由咖喱粉、牛奶/椰奶加入油、盐、白胡椒、茴香等调味料制成, 所以它必须具备味道鲜香浓郁的属性以及让汤汁浓稠的方法,大厨们将调和好的咖喱酱处理后制成咖喱块装于包装盒内,身为使用者的我们可以通过加咖喱块制作一份香喷喷的咖喱饭,却无法得知咖喱块制作的具体细节。


private class Curry{


香料1;


香料2;


鲜香浓郁;


让汤汁浓稠(咖喱配菜,水)


{


!@#¥%……&*()……;//其实我也不知道怎么变的,谁叫它封装了呢?捂脸~


return 咖喱饭;


}


}


二、继承


继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。上面我们说了,咖喱块是我们可以直接拿到的对象,我们拿到咖喱块后又发现了新的问题,湖南人、四川人吃的辣,而沿海的人口味偏淡,如何解决呢?我们就需要DIY一份属于自己口味的咖喱饭了,具体操作看代码。


class HuNanCurry extends Curry{


香料1;


香料2;


鲜香浓郁;


让汤汁浓稠(咖喱配菜,水 水)


{


{


!@#¥%……&*()……湖南人加辣椒


return 咖喱饭;


}


}


class FuJianCurry extends Curry{



香料1;



香料2;



鲜香浓郁;



让汤汁浓稠(咖喱配菜,水 水)



{



{



!@#¥%……&*()……福建人加水;



return 清淡的咖喱饭;



}



}


三、多态


指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式,多态必须满足三个条件(1、需继承 2、需重写父类方法3、父类引用指向子类对象),这里就要提到上面的DIY咖喱饭咯,它有两个子类,分别是湖南咖喱和福建咖喱,而且都重写了父类的方法,那什么叫父类引用指向子类对象呢?我们来设想一个情况,当一个湖南的小盆友对妈妈说,今天我们吃咖喱饭吧,这里的咖喱饭指的就是湖南的变态辣咖喱,如果是福建的小盆友说这句话,指的就是加水的清淡咖喱,他们所说的咖喱饭,其实都指向了curry的子类HunanCurry或者FuJianCurry,这就是多态的三大条件,让我们试想调用以后的样子……


class CurryTest


{


public static void main (String  [] args)


{


Curry 咖喱块=new  FuJianCurry;//父类引用指向子类对象


食物 咖喱饭=  咖喱块.让汤汁变粘稠(食物 咖喱配菜,水水 );//这是一碗清淡的咖喱饭,为什么呢?


//自己想,还要想想怎么做出原味咖喱和变态辣咖喱~


//现在可以开吃啦


}


}