Java中的多态

  1. 多态定义

顾名思义就是多种变现状态
最直观的理解:有对象名称,用对象名称打点调用方法在不同的时候执行的方法的功能是不一样的

  1. 多态的判断标准

1.跨类且继承,多态是以继承为基础的
2.子类重写长辈的方法
3.子类的对象赋值给长辈的引用
4.长辈的引用打点调用子类重写的方法

  1. 能够表达多态的应用场景

1.以长辈作为方法或函数的参数
2.以长辈作为方法或函数的返回值

  1. 多态的优点:

可以提高代码的复用率
可以大大提高开发效率
是程序结构优化

  1. 多态的缺点:

会增加类与类中间的关系,导致类与类之间的复杂度增高

  1. 多态例题解答
public class Demo {
	public static void main(String[] args) {
		A a1 = new B();
		a1.Method(10.0, 10);
		A a2 = new B();
		a2.Method(10, 10.0);
	}
}
class A {
	protected void Method(double d1 , int i2) {
		System.out.println("A1");
	}
	protected void Method(double d1 , double d2) {
		System.out.println("A2");
	}
}
class B extends A {
	protected void Method(int i1 , double d2) {
		System.out.println("B1");
	}
	protected void Method(double d1 , double d2) {
		System.out.println("B2");
	}
}

分析:
 B继承了A
 B重写了A中的Method()方法
 a1和a2是B的对象赋值给A的引用
 a1和a2打点所调用的
 所以是多态
a1.Method(10.0, 10)因为参数为double和int类型,在A中由该参数是一致的所以直接调用A中的方法,输出结果为A1
a2.Method(10, 10.0)此参数为int和double,在A和B中并没有相应的方法与之对应,但是int和类型可以向上转型为double类型,所以就是double和double类型的两个参数,所以调用B中重写的方法,输出结果为B2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值