在学习了Java面向对象的特点后,掌握了一些有关继承的知识点。
继承的定义
两个对象之间是一方包容另一方的关系,两者是"is - a"的关系,例如下图中
动物对象,狗属于动物的一种,猫也属于动物的一种,狗和猫都可以称为动物,它们与动物之间的关系就属于is-a关系,称为继承。Dog is Animal; Cat is Animal。狗继承动物类,猫继承动物类。
在这个继承关系中,狗和猫甚至一些鱼,蛇等种种动物,它们中共同拥有的一些特点,java中将这些特点提取出来形成了它们的父类。 Animal类(动物)。
而它们都称为Animal类的子类。
.案例
继承中的关键字是extends。
如图中,此时Dog类与Animal类形成了继承关系,Cat类同样。
在它们的父类Animal中有两个属性,姓名与年龄。
当它们继承父类后,也拥有了父类中的属性和方法。
控制台为继承后属性输出结果。
继承方法,此时我们需要了解,父类中拥有的方法,不同的子类继承到之后,表现方式也不同,例如动物都会睡觉,狗每天8个小时,猫5个小时。(这是举例,具体时间不清楚)。这时候就需要用到方法的覆盖。
方法的覆盖
*覆盖(override)(也称为方法重写)
子类中继承父类的方法,在子类中定义一个和父类中方法名一样的方法
对于覆盖的一些要求:
1.方法名,返回值类型,形参列表都要和父类中的相同
2.修饰符相同或者更宽
override与overload
之前学到方法的重载(overload)
*重载是在同一个类中定义多个相同方法名的方法。
它的要求是:
1.方法名相同
2.形参列表不同(数量,类型,顺序)
3.对方法的返回值修饰符异常等没有要求
两者的要求注意事项要多注意,不可混淆。
方法覆盖通常是父类的方法与子类的要求不同,无法满足需求。此时进行覆盖。
继承是一种机制,一个类只能直接继承一个父类(单继承),但是可以继续有间接父类(多级继承)
简单的例子~
一个人只能有一个父亲,但是他可以有多个孩子。同时他有爷爷,也就是父亲的父亲。(继承)
希望我写的一些东西可以对大家有所帮助,谢谢大家。