File tree Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ Trait ใช้เพื่อแชร์ interface และ field ระห
1515คลาส และ object สามารถ extend trait ได้ แต่เราไม่สามารถสร้าง object จาก trait ได้\
1616ดังนั้น trait จึงไม่สามารถมี parameter เช่นเดียวกับที่คลาสมี
1717
18- ## การกำหนด trait
18+ ## การกำหนด Trait
1919
2020วิธีที่ง่ายที่สุดในการกำหนด trait คือการประกาศด้วย keyword ` trait ` และ indentifier:
2121
@@ -56,7 +56,7 @@ trait Iterator[A]:
5656
5757การขยาย (extend) ` trait Iterator[A] ` ต้องการ type ` A ` และ implementation ของ method ` hasNext ` และ ` next `
5858
59- ## การใช้ traits
59+ ## การใช้ Trait
6060
6161ใช้ keyword ` extends ` เพื่อขยาย trait จากนั้นให้ implement abstract member ใดๆ ของ trait โดยใช้ keyword ` override ` :
6262
@@ -121,15 +121,15 @@ iterator.next() // returns 1
121121คลาส ` IntIterator ` นี้รับค่า parameter ` to ` เพื่อกำหนดค่าสูงสุด (upper bound) โดยที่คลาส ` IntIterator ` ได้ extend จาก ` Iterator[Int] ` \
122122ดังนั้น method ` next ` จะต้อง return ค่าเป็น Int
123123
124- ## Subtyping
124+ ## การใช้ Subtype
125125
126126เมื่อจำเป็นต้องใช้ trait ใดๆ เราสามารถใช้ subtype (คลาสใดก็ตาม ที่ extend มาจาก trait นั้นๆ) แทนได้
127127
128- > ** Note by Thai translator:** \
128+ > *** Note by Thai translator:* **\
129129> "เมื่อจำเป็นต้องใช้ trait ใดๆ" ในที่นี้ น่าจะหมายถึงเรามีการระบุไว้ว่า parameter ที่ได้ระบุ type เป็น trait\
130130> ดังนั้นเราสามารถใช้ * subtype ใดๆ ที่ implement จาก trait นั้นๆ ได้*
131131>
132- > ลองพิจารณา code นี้
132+ > ** ลองพิจารณา code นี้: **
133133>
134134> ``` scala
135135> val dog = new Dog (" Harry" ) // คลาส `Dog` เป็น subtype ของ trait `Pet`
You can’t perform that action at this time.
0 commit comments