学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通过不断的练习和实践,掌握其中的奥妙,选择合适的设计模式,能为我们的项目增加一丝神奇的魔力。
文章目录
- 定义
- 例子
- Coding
- 测试
- 测试结果
- 优点
定义
子类可以扩展父类的功能,但不能改变父类原有的功能。
即子类只添加新的方法,尽量不要重写父类方法,也尽量不要重载父类方法。
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
例子
父亲和儿子不同特征的例子
Coding
父亲类
public class Father {
public void mouth(){
System.out.println("父亲是大嘴");
}
public void leg(){
System.out.println("父亲腿短");
}
}
儿子类
public class Son extends Father{
//重写了父亲的“腿”方法
public void leg(){
System.out.println("儿子腿长");
}
public void leg(Integer size){
System.out.println("儿子腿长"+size+"cm");
}
public void sonLeg(){
System.out.println("儿子是大长腿");
}
public void eye(){
System.out.println("儿子是大眼睛");
}
测试
public class Test {
public static void main(String[] args) {
Father father = new Father();
father.leg();
Son son = new Son();
son.leg();
son.leg(150);
son.sonLeg();
}
}
测试结果
父亲腿短
儿子腿长
儿子腿长150cm
儿子是大长腿
从中我们可以看到,son类继承父类的leg()方法已经被覆盖了,若我们只在son类的leg()方法上添加了入参,则继承father类的的leg()方法就不会受到影响了
优点
保证了父类的复用性,克服类的扩展给已有的系统引入新的错误,降低了代码出错的可能性。
增强程序的健壮性,即使增加子类,原有的子类还可以继续运行。在实际项目中,每个子类对应不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑。
文章后期会持续优化,如果觉得小名的文章帮助到了您,请关注小名,支持一下小名😄,给小名的文章点赞👍、评论✍、收藏🤞谢谢大家啦~♥♥♥
编码魔法师系列文章,会收录在小名的【设计模式】专栏中,希望大家可以持续关注🎉