更新时间:2022-10-10 09:23:58 来源:极悦 浏览1253次
在java多态中主要由以下两种表现方式:
同一个方法中有多个同名的方法,但这些方法有不同的参数。因此在编译时,就可以确定到底调用哪个方法。它是一种编译时多态。重载可以被看做一个类中的方法多态性。
子类可以覆盖父类的方法,因此同样的方法会在父类和子类中有着不同的表现形式。 在java语言中,基类的引用变量不仅可以指向基类的实例对象,也可以指向其子类的实例对象。同时,接口的引用变量也可以指向其实现类的实例对象。这样就可以实现动态绑定。 这样就只有运行时才能确定调用哪个方法,因此通过方法覆盖实现的多态也可以被称为运行时多态。
类中的方法有多态的概念,类中的成员变量没有多态的概念。
如下代码, 打印的结果是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教程,里面还有更丰富的知识等着大家去学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习