首页 课程 师资 教程 报名

一文读懂Java实现多态的机制

  • 2022-10-10 09:23:58
  • 1092次 星辉

java多态中主要由以下两种表现方式:

1. 方法的重载(overload)

同一个方法中有多个同名的方法,但这些方法有不同的参数。因此在编译时,就可以确定到底调用哪个方法。它是一种编译时多态。重载可以被看做一个类中的方法多态性。

2. 方法的覆盖(override)

子类可以覆盖父类的方法,因此同样的方法会在父类和子类中有着不同的表现形式。 在java语言中,基类的引用变量不仅可以指向基类的实例对象,也可以指向其子类的实例对象。同时,接口的引用变量也可以指向其实现类的实例对象。这样就可以实现动态绑定。 这样就只有运行时才能确定调用哪个方法,因此通过方法覆盖实现的多态也可以被称为运行时多态。

子类覆盖(override)父类中的方法时,需要注意几点:

类中的方法有多态的概念,类中的成员变量没有多态的概念。

如下代码, 打印的结果是1, 成员变量的取值是父类还是子类并不取决于创建对象的类型,而是取决于所定义变量的类型,这是在编译期间决定的。

import org.junit.Test;
public class Base {
	public int i = 1;	
	@Test
	public void test(){
		Base b = new Derived();
		System.out.println(b.i);// b所属的类型是Base, b.i指的是Base类中定义的i
	}
}
class Derived extends Base{
	public int i = 2;
}

以上就是关于“一文读懂Java实现多态的机制”介绍,大家如果想了解更多相关知识,不妨来关注一下本站的Java教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交