我有两个问题 1 覆盖 2 编译时绑定
嗨我想知道如何检查 sh() 是否变为覆盖
方法参数在方法覆盖中起任何作用吗?
为什么我们说静态方法在编译时绑定,但实际上静态方法在类加载时分配内存?当我使用 javac 工具时,这意味着我使用编译器并且我编译了一个 java 文件,所以那一刻静态内存不分配,静态内存分配一个类加载时间,那么为什么说静态方法使用编译时绑定
类加载时间与编译时间相同吗?我很困惑
我知道这里的方法签名是不同的,所以这里没有比这里实际发生的覆盖解释
class A
{
void sh(char x){
System.out.println("value of x : "+x);
}
}
class B extends A
{
public void sh(int x)
{
System.out.println("value of x"+x);
}
}
class C
{
public static void main(String...Aa) /* ??? */
{
A a1=new B();
//a1.show();
a1.sh('a');
a1.sh(10);
}
}