我对主题绑定很困惑。正如我们所知,在静态绑定中,会检查引用的类型来确定绑定,而不是它所引用的对象,而在动态绑定中,会考虑引用所指向的对象的类型。
class A
{
void show()
{
System.out.println("From A");
}
}
class B extends A
{
void show()
{
System.out.println("From B");
}
}
class Main
{
public static void main(String[] quora)
{
A a1 = new A();
A a2 = new B();
a1.show(); //line 1
a2.show(); //line 2
}
}
在上面的例子中,我们可以看到在编译时,Line1和line2都将被静态绑定处理,并且它们将链接到A类方法show(因为引用的类型是A)。但在运行时,调用被解析,line1 链接到 A 类方法 show(),line2 链接到 B 类方法,即对象类型,或者我们可以说动态绑定。
所以我的主要目的是了解以下内容。
动态绑定总是在静态绑定之后产生吗?或者我理解有问题?
如果这是真的,那么每个方法在运行时都是动态链接的说法是真的吗?
我们可以概括一下吗?
jeck猫
相关分类