多态和重载的区别及用法

文章目录

多态

在同一个方法中,由于参数类型的不同从而导致执行效果各异的现象就是多态。

1.多态现实意义理解:
现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。
Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。

2.多态体现为父类引用变量可以指向子类对象。
定义格式:父类类型 变量名=new 子类类型();

 Parent p=new Child();//父类的对象p指向子类

4.前提条件:必须有子父类关系(extend或者implement)。
注意:在使用多态后的父类引用变量调用方法时,可以直接用父类对象调用子类重写后的方法。
但是未重写的方法,需要使用类型转换从而调用此方法

 People p1=new Student();
 p1.eat();//直接调用子类重写后的方法
 
 Student s1=(Student)p1;//子类新定义的方法study()需要对父类型进行转换为子类型从而调用子类自定义的方法
 s1.study();
 //或者更简便写
 ((Student)p1).study();

5.多态中成员的特点
调用多态的成员变量(取到父中的值):编译运行看左边
Fu f=new Zi();
System.out.println(f.num);//f是Fu中的值,只能取到父中的值

2.多态成员方法(调用的是重写后的方法):编译看左边,运行看右边

Fu f1=new Zi();
System.out.println(f1.show());//f1的类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。

重载

java允许一个程序中定义多个名称相同的方法,但是参数类型或个数必须不同
方法的重载和返回值类型无关,他只需要满足两个条件:
1)方法名相同
2)参数个数或参数类型不同

public class E12 {
    public int add(int x,int y){
        return x+y;
    }
    public int add(int x,int y,int z){//参数个数不同
        return x+y+z;
    }
    public double add(double x,double y){//参数类型不同
        return x+y;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值