[JAVA] °­ÁÂ 12



|12ÀÏÂ÷|



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();
 }
}


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


C:\Java ¿¬½À\OOP>java A
class AÀÇ getInfo() ½ÇÇà

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

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


class A {
 void getInfo() {
    System.out.println("class AÀÇ getInfo() ½ance method¿Í ¸¶Âù°¡Áö·Î
overloadingµÈ instance method¶ÇÇÑ »ó¼ÓµÇ¾úÀ½"A¿¡°ÔÈ£ÃâÇÔ ");
 }
}


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

C:\Java ¿¬½À\OOP>java B
class AÀÇ getInfo() ½ÇÇà
A¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà

====================================================

Ŭ·¡½º°¡ ¾ò¾îÁö¸é instance´Â ¹«¼öÈ÷ ¸¸µé¾î Áú ¼ö°¡ ÀÖ´Ù. ½ÇÁ¦·Î ¸¹Àº instance°¡ ¸¸µé¾î Áú ¶§ ¹«¼öÈ÷ ¸¸µé¾î Áö´Â °ÍÀº °¢°¢ÀÇ 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ÀÇ getInfo() ½ÇÇà
A¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà
class AÀÇ getInfo() ½ÇÇà
B¿¡°ÔÈ£ÃâÇÔ  class AÀÇ getInfo(String) ½ÇÇà

=====================================================

overloadingµÈ method¸¦ »ó¼ÓÇÏ¿© overridingµÈ method¿¡ ´ëÇÏ¿© ¾Ë¾Æº¾½Ã´Ù.
(¸»ÀÌ ³Ê¹« Çê°¥¸®´Â±º¿ä T.T)


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 {

 void getInfo() {
    System.out.println("class BÀÇ getInfo() ½ÇÇà");
 }
 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ÀÇ 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()°¡ ½ÇÇàÀ̵ȴÙ.





´ÙÀ½¿¡´Â »ó¼Ó¿¡¼­ÀÇ »ý¼ºÀÚ¿¡ ´ëÇÑ ³»¿ëÀÌ ¿Ã¶ó¿Ã ¿¹Á¤ÀÔ´Ï´Ù.