[JAVA] °­ÁÂ 3



|3ÀÏÂ÷|



Java¿¡¼­ÀÇ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö °­Á (2)


À̹ø¿¡´Â methodÀÇ overloading¿¡ ´ëÇÏ¿© ¾Ë¾Æº¾´Ï´Ù.

class A {

 void getInfo() {

    System.out.println("class AÀÇ getInfo() ½ÇÇà");

 }

 void getInfo(String str) {

    System.out.println(str+" class AÀÇ getInfo(String) ½ÇÇà");

 }

 public static void main(String[] args) {

    A instA ;

    instA = new A();

    instA.getInfo();

 }

}

ÄÄÆÄÀÏ ÈÄ ½ÇÇàÇÏ¸é °á°ú´Â ¾Æ·¡¿Í °°´Ù.

C:\Java ¿¬½À\OOP>java A

class AÀÇ getInfo() ½ÇÇà



Áï, methodÀÇ À̸§ÀÌ °°´õ¶óµµ ÆĶó¹ÌÅÍÀÇ typeÀ¸·Î½á È£ÃâÇÒ method¸¦ ±¸ºÐÇÏ¿© ½ÇÇà½ÃŲ´Ù. ÀÌ·¯ÇÑ °ÍÀ» methodÀÇ overloadingÀ̶ó°í ÇÑ´Ù.

method¸¦ È£ÃâÇÒ ¶§ ÆĶó¹ÌÅÍ°ªÀ» ¹Ù²Ù¾î¼­ ½ÇÇà½ÃÄѺ¸ÀÚ.

class A {

 void getInfo() {

    System.out.println("class AÀÇ getInfo() ½ÇÇà");

 }

 void getInfo(String str) {

    System.out.println(str+" class AÀÇ getInfo(String) ½ÇÇà");

 }

 public static void main(String[] args) {

    A instA ;

    instA = new A();

    instA.getInfo("¾È³ç");

tInfo();

    instB.getInfo("B¿¡°ÔÈ£ÃâÇÔ ");

 }

}

½ÇÇà°á°ú´Â ¾Æ·¡¿Í °°´Ù.

C:\Java ¿¬½À\OOP>java B

class AÀÇ getInfo() ½ÇÇà

B¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà



instance º¯¼ö¿Í instance method¿Í ¸¶Âù°¡Áö·Î overloadingµÈ instance method¶ÇÇÑ »ó¼ÓµÇ¾úÀ½À» ?Áö´Â °ÍÀº °¢°¢ÀÇ instance¿¡ ´ëÇÑ instance member °´Ã¼ÀÇ °ª¸¸ÀÌ ¸¸µé¾îÁø´Ù. class¿¡¼­ Á¤ÀÇµÈ method´Â ´Ü ÇÑ°¡Áö¸¸À¸·Î ÃæºÐÇÏ´Ù.

À§ÀÇ Äڵ忡¼­ instance¸¦ Çϳª Ãß°¡ÇÑ ´ÙÀ½ Äڵ带 º¸ÀÚ.

class A {

 void getInfo() {

    System.out.println("class AÀÇ getInfo() ½ÇÇà");

 }

 void getInfo(String str) {

    System.out.println(str+" class AÀÇ getInfo(String) ½ÇÇà");

 }

}



class B extends A {

 public static void main(String[] args) {

    A instA ;

    B instB ;

    instA = new A();

    instB = new B();

    instA.getInfo();

    instA.getInfo("A¿¡°ÔÈ£ÃâÇÔ ");

    instB.getInfo();

    instB.getInfo("B¿¡°ÔÈ£ÃâÇÔ ");

 }

}

ÄÄÆÄÀÏ ÈÄ ½ÇÇà°á°ú´Â ´ÙÀ½°ú °°´Ù.



C:\Java ¿¬½À\OOP>java B

class AÀÇ get ¾Æ·¡¿Í °°´Ù.



C:\Java ¿¬½À\OOP>java B

class AÀÇ getInfo() ½ÇÇà

A¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà

class BÀÇ getInfo() ½ÇÇà

B¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà



class B¿¡¼­ overridingµÈ getInfo()´Â

instanceB¿¡¼­ È£ÃâÇϸé class BÀÇ getInfo()°¡ ½ÇÇàÀ̵ǰí

instanceA¿¡¼­ È£ÃâÇϸé class AÀÇ getInfo()°¡ ½ÇÇàÀ̵ȴÙ.



´ÙÀ½¿¡´Â Java OOP °­Á 3ÆíÀÌ ¿Ã¶ó¿Ã ¿¹Á¤ÀÔ´Ï´Ù.