java中的多态性

java中的多态性,java,runtime,polymorphism,Java,Runtime,Polymorphism,方法重载是运行时多态性还是编译时多态性的一个例子?Java中没有运算符重载 方法重写启用运行时多态性;方法重载启用编译时多态性 你可以在课本上读到更多关于这方面的内容 另见 方法重载是编译时绑定或静态绑定的示例 方法重载会导致多态方法,一个方法可以多次定义为具有相同名称和不同数量的方法参数或参数类型(java允许这样做),当这种情况发生时,方法调用和实际定义之间的链接将在编译时解析,因此重载称为编译时绑定或静态绑定。OO程序语言的特性称它具有编译时多态性 方法重载和多态性是两个完全不同的

方法重载是运行时多态性还是编译时多态性的一个例子?

Java中没有运算符重载

方法重写启用运行时多态性;方法重载启用编译时多态性

你可以在课本上读到更多关于这方面的内容

另见

方法重载是编译时绑定或静态绑定的示例
方法重载会导致多态方法,一个方法可以多次定义为具有相同名称和不同数量的方法参数或参数类型(java允许这样做),当这种情况发生时,方法调用和实际定义之间的链接将在编译时解析,因此重载称为编译时绑定或静态绑定。OO程序语言的特性称它具有编译时多态性

方法重载和多态性是两个完全不同的概念。多态性与继承相关,并确定从类层次结构的哪个级别调用该方法。方法重载是在同一位置使用相同名称创建两个采用不同参数的方法。例如:

class A{
    public void doSomething(){
         System.out.println("A method");
    }

    //method overloaded with different arguments-- no polymorphism 
    //or inheritance involved!

    public void doSomething(int i){
         System.out.println("A method with argument");
    }
}

class B extends A{

    //method polymorphically overridden by subclass. 

    public void doSomething(){
         System.out.println("B method");
    }
}

//static type is A, dynamic type is B.
A a = new B();
a.doSomething(); //prints "B method" because polymorphism looks up dynamic type 
                 //for method behavior

方法重载是complie时间绑定的一个例子。编译器只在编译时解析需要调用的方法,因此它是编译时多态性,或者可以说是静态绑定,但方法重写是运行时多态性,bcz在运行时,根据对象引用解析方法调用。

这是家庭作业吗?一个测试问题?出于同情,请在按下按钮并更正错误之前阅读您自己的问题。实际上,我收回了我所说的Java中没有运算符重载的内容,例如,
+
对于数字加法和
字符串
串联都重载(Josh Bloch建议可能是Java设计者的错误)。是的,有些操作符在Java中是重载的,但是您不能定义自己的重载。