Java多态是指为不同数据类型的实体提供统一的接口,Java多态性是指允许不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性,简而言之,java多态性是具有表现多种形态的能力的特征,多态就是多个对象调用同一个方法得到不同的结果。专业一些的概念就是同一个实现接口,使用不同的实例而执行不同的操作。
多态的几种代码实现:
public class SingleClass {
//孩子1:
public String child(){
System.out.println("child1");
return "child1";
}
//孩子2:与孩子1参数个数不同
public String child(String a){
System.out.println("child2");
return "child2";
}
//孩子3:与孩子4参数顺序不同
public String child(int a,String s){
System.out.println("child3");
return "child3";
}
//孩子4:与孩子3参数顺序不同
public String child(String s,int a){
System.out.println("child4");
return "child4";
}
public static void main(String[] args){
//重载方法调用:略
}
}
从上述代码我们可以看到,在类的内部可以有相同的方法名,但是有唯一的参数列表。当然返回类型和修饰符也可以不同。下面我们再看一下类之间的多态。
类之间的多态其实是有两种方式:继承和接口。我们对这两种方式一个一个说明。
对于继承方式我们使用一个例子来解释,比如说父亲可以对自己的房子有处理权,儿子继承父业同样也有处理权。
第一步:定义父类
public class Father {
public void dealHouse(){
System.out.println("父亲处置房产");
}
}
第二步:定义子类(大儿子和小儿子)
//大儿子
public class SonA extends Father {
@Override
public void dealHouse() {
System.out.println("大儿子处置房产");
}
}
//小儿子
public class SonB extends Father {
@Override
public void dealHouse() {
System.out.println("小儿子处置房产");
}
}
第三步:测试
public class Test {
public static void main(String[] args) {
Father father=new Father();
Father sonA=new SonA();
Father sonB=new SonB();
father.dealHouse();
sonA.dealHouse();
sonB.dealHouse();
}
}
//父亲处置房产
//大儿子处置房产
//小儿子处置房产
接口方式实现继承方式其实跟上面一样,只不过把父类变成了接口而已,其他内容只有微笑的变化,这里就不演示了,在这里只给出父接口的形式。
public interface Father {
public void dealHouse();
}
到了这基本上就对多态形式的代码实现进行了演示,案例也比较简单,但是这对我们理解多态的思想还不够,我们可以在动力节点在线的Java SE视频课程中观看学习专业老师的分析,加深自己的理解。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54