重新认识面向对象

继承 面向对象肯定要用到继承
定义:继承是对现实生活的“分类”概念的一种模拟
目的:复用代码
而现实的作用:忽略了代码的耦合性和内聚性,造成了代码高耦合,拥有极深的类型继承树,牵一发而动全身,影响对代码的日后维护
重新认识面向对象
文章图片
3.jpg 子类和父类的关系

Animal an=null; //父类 Lion li=New Lion(); //子类 an=lion; //正确 lion=an; //编译时错误 lion=(Lion)an; //正确 Monkey m=(Monkey)an; //运行时错误

父类和子类的方法,字段同名的时候,那么问题来了.. 方法同名: 重载与重写
重载 重写
不用继承 必须继承
方法名相同,参数列表不同 方法名,参数数目相同,参数类型兼容
修饰符无关 方法修饰符大于等于父类的方法
字段同名
class Parent{ public int value = https://www.it610.com/article/100; } class Child:Parent{ public int value = 200; } #在主函数中的测试代码 Parent p = new Child(); System.out.println(p.value); System.out.println((p as Child).value);

第一个输出语句是父类的值
而第二个输出语句是子类的值,总结在字段同名的情况下,子类若想输出必须转换类型
【重新认识面向对象】总结:在实际开发中,要尽量避开这些坑!!!

    推荐阅读