เรียนรู้ OOP ด้วย C#.NET(ต่อ)

Signature
 คือค่าต่างใน Method นั้นเอง Signature ไม่ได้หมายถึง return type ชื่อพารามิเตอร์ Modifier params
 แต่หมายถึง ชื่อMethod,parameter type,จำนวน Parameter ,วิธีส่ง parameter ลำดับพารามิเตอร์
 
Overloading (MO)
 Method ที่มีชื่อเหมือนกัน แต่ Signature แตกต่างกัน เช่น
 using System;
 namespace ConsolApplication
 {
  Class Program
  {
   public static void main(String[] args)
   {
    Console.writline(1);
                 Console.writline("hello");
                 Console.writline(‘c’);
    Console.writline(123.456);
   }
  }
 }
 จะเห็นว่าเราสามารถใช้ Console ในการ write ข้อมูลออกมาได้หลาย ทำไมจึงเป็นเช่นนั้น ก็เพราะว่า writeline  
 overloading method ไว้ทั้งหมด 19 แบบด้วยกัน เราแทบไม่มีโอกาสใช้ได้ทั้งหมดเลย
 
Inherits
 การสืบทอดระหว่าง Base Class กับ Derived Class  โดยจะคั่นด้วยเครื่องหมายโครอน เช่น
 Class A{//…………..//}
 Class B:A{}
 การ Inherist ได้แค่ Base Class เดียวเท่านั้นและไม่สามารถ Inherits จาก Structure ได้
 ทุกอย่างที่มีใน Base Class เมื่อ Client Class สืบทอดแล้วจะได้รับการสิบทอดเกือบทั้งหมดยกเว้น access modifier
 ที่เป็น Private จะไม่สามารถทอดได้
 
Versioning
 ในที่นี้จะกล่าวถึงการ Inherits เป็นหลักช่วยให้การพัฒนา Software แบบ OOP ไม่เกิดความขัดแย้งกัน ช่วยให้เรา
 สามารถ Implement Method ที่สิบทอดมาได้ โดยการใช้คีเวิร์ค Virtual นำหน้า Method ของ Base Class ที่  Client จะต้องใช้คีย์เวิร์ค override หรือ New นำหน้านิยามเมธอดนั้นๆ Method ที่ Implement ใหม่นี้จะไม่ไป รบกวน Method ในคลาสแม่ โดย Method ที่ Implement ใหม่นี้จะมาบัง Method ใน Base Class แทน
Name Bindding
 การจับคู่หรือการอ้างถึงกันระหว่างตัวแปรกั Object หากเกิดตอนคอมไพล์เรียกว่า early binding เกิดตอน Runtime
 เรียกว่า late binding
 
Hindding
 การซ่อนหรือการบัง Method นั้นเอง โดยใช้คำสั่ง New เช่น
 class A
 {
  public int X;
  public int void Y(){};
  public virtual int Z(){};
 }
 class B:A
 {
  Public new int X;
  public new int void Y(){};
  public new virtual int Z(){};
 }
 สามารถทำได้กับ Class,structure,Field,Property,Method และที่สำคุญไม่สามารถใช้ new กับ override พร้อม กันไม่ได้
 
Abstarcture
 การสร้างต้นแบบนั้นเอง เพราะฉะนั้นที่ base class มี Method แบบไหน client class ที่สืบทอดไป จะทำ   Implement ให้เหมือนกับ base class นั้นๆ เช่น
 abstarct class myProgram
 {
  abstruct public int myFunction();
 }
 class myCientClass:myProgram
 {
  int x,y;
  public int myFunction()
  {
   return x+y;
  }
 }

กรุณา Comment สักหน่อยเถอะ จะได้ปรับปรุ่งให้ดีขึ้น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s