标签:Pet class 多态 eat 开发 实际 void public
通过一个例子来看:
主人喂养宠物
public class Master{
public void feed(Cat cat){
cat.eat();
}
}
class Cat{
public void eat{
System.out.println("小猫在吃鱼。。。");
}
}
在上述的例子中,主人养了一只猫并喂养它,但是后来主人又想养一只狗了。
于是,我们需要在主人类中新添加一个feed(Dog dog),如果主人的需求越来越多(客户的需求增加了),我们就需要不断的修改主人类,这是不合适的。
软件开发原则ocp(开闭原则:对扩展开放,对修改关闭。
修改越少越好。
于是我们可以在主人类中这样写代码
public class Master{
public void feed(Pet p){
p.eat();
}
}
class Pet{
public void eat{};
}
class Cat extends Pet{
public void eat{
System.out.println("小猫在吃鱼。。。");
}
}
在主人类中使用一个宠物类,以后再养狗就可以继承这个宠物类,然后重写Pet类的eat()方法,主人就可以喂养狗了,不需要修改Master类了。
在上面的例子中,我们通过Pet类来使程序的扩展性更强,这就是面向抽象编程,面向一个抽象的宠物类,而不是一个个具体的Dog,Cat等。这其中运用了多态来实现,多态是面对抽象的终于实现途径。
多态可以降低程序的耦合度,提高程序的扩展力。
标签:Pet,class,多态,eat,开发,实际,void,public 来源: https://www.cnblogs.com/52ky/p/15361992.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。