有关多态的概念和实例
首先,面向对象的三大特性有:封装、继承、多态。
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
多态的作用:消除类型之间的耦合关系。
实现多态的技术称为:动态绑定。
多态有两种表现形式:重载和覆盖
重载:发生在同一类中。与父类、子类的继承没有任何关系。标识一个函数除了函数名之外,还有函数的参数(即个数和类型)。一个类中可以有两个或者三个或者更多函数名相同的方法,但是他们的参数一定是不通的。他们之间毫无关系,只是函数名字相同,可能他们功能相似,但是是不同的函数,增加可读性。
覆盖:发生在子类中,也就是说必须有继承的情况下才会发生覆盖现象。也就是说,当子类集成一个父类时,同时继承了父类的所有方法,,但是子类有时候会感觉某个方法不适合自己,功能需要发生改变,就会把该方法在子类中重新写一遍,就发生了覆盖现象。
多态的实例:有一个动物类,里面有吃这个方法。猫和狗同时继承了动物这个类,猫重写吃这个方法,实现猫吃鱼这个具体功能,狗也重写吃这个方法,实现狗吃骨头这个功能。这就是多态的一种体现。
Java中子类继承父类的关系
package com.stu;
public class FatherClass {
public FatherClass() {
System.out.println("fatherClass create");
}
}
package com.stu;
public class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("ChildClass create");
}
public static void main(String[] args) {
FatherClass f = new FatherClass();
ChildClass c = new ChildClass();
}
}
//运行结果
fatherClass create
fatherClass create
ChildClass create
1 父类静态代码块
2 子类静态代码块
3 父类代码块
4 父类狗造
5 子类代码块
6 子类构造