полиморфизм в яве - PullRequest
       14

полиморфизм в яве

3 голосов
/ 06 мая 2010

Является ли перегрузка метода примером полиморфизма во время выполнения или полиморфизма во время компиляции?

Ответы [ 4 ]

4 голосов
/ 06 мая 2010

В Java нет перегрузок операторов.

Переопределение методов включает полиморфизм времени выполнения ;перегрузка метода включает полиморфизм времени компиляции .

Подробнее об этом можно прочитать в учебнике.

См. также

2 голосов
/ 19 октября 2012

Перегрузка метода и полиморфизм - это две совершенно разные концепции. Полиморфизм относится к наследованию и определяет, с какого уровня иерархии классов вызывается метод. Перегрузка методов - это создание двух методов в одном месте с одинаковым именем, которые принимают разные аргументы. Например:

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
0 голосов
/ 09 июля 2014

Перегрузка метода является примером привязки к времени. Компилятор решает, какой метод нужно вызывать только во время компиляции, так что это полиморфизм времени компиляции или вы можете сказать статическое связывание, но переопределение метода - это полиморфизм времени выполнения, bcz во время выполнения, в зависимости от ссылки на объект, вызов метода разрешается.

0 голосов
/ 06 мая 2010

Метод перегрузки является примером для привязки времени компиляции или статической привязки. перегрузка метода приводит к полиморфным методам, метод может быть определен более одного раза, имея одно и то же имя и переменное число, либо параметры метода, либо типы параметров (java позволяет это делать), когда это происходит, разрешается связь между вызовом метода и фактическим определением таким образом, во время компиляции перегрузка называется привязкой во время компиляции или статической привязкой. OO Особенности языка программы называют его полиморфизмом времени компиляции.

...