2015-06-29 2 views
1

И просто новичок в Java В коде ниже я oveloaded метод печати между двумя различными классамиПерегрузка метода также известна как статический полиморфизм?

на основе объекта во время выполнения только соответствующих метод печати будет executed.If моего понимания правильно, то как мы можем сказать, метод перегрузка считается статическим ploymorphism

class Parent 
{ 
    private int arg; 
    public void print(int arg) 
    { 
     this.arg=arg; 
     System.out.println(arg+"printed"); 
    } 
} 
class Child extends Parent{ 

    private String arg; 
    public void print(String arg) 
    { 
     this.arg=arg; 
     System.out.println(arg+"printed"); 
    } 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Parent p1=new Parent(); 
     Child ch=new Child(); 
     p1.print(1); 
     ch.print("String"); 
    } 

} 

Просьба уточнить me.thanks заранее

+0

_Based на объекте в runtime_ - ** NO **. Java привязывается к _compile time_. Как определяется конкретный метод, решается во время компиляции **, ** все ** полиморфизм является «статическим», как вы выразились. Это только «класс», на который вызван метод, который изменяется. –

+0

@BoristheSpider * весь полиморфизм «статический» *. Это звучит немного некорректно для меня. Можете ли вы уточнить? – CKing

+0

@ChetanKinger То, что я пытался сделать, это то, что методы привязаны во время компиляции и поэтому являются «статическими» (в терминологии OP). Динамический - это класс, на который вызывается ** тот же метод **. Вы правы, хотя - это не более разъясняющий комментарий, который я когда-либо писал. –

ответ

0

Да, это время компиляции (статические) полиморфизм - при условии, что вы могли бы написать такой код:

Child ch=new Child(); 
ch.print(2015); 
ch.print("String"); 
Смежные вопросы