File tree 1 file changed +5
-5
lines changed
1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ Trait ใช้เพื่อแชร์ interface และ field ระห
15
15
คลาส และ object สามารถ extend trait ได้ แต่เราไม่สามารถสร้าง object จาก trait ได้\
16
16
ดังนั้น trait จึงไม่สามารถมี parameter เช่นเดียวกับที่คลาสมี
17
17
18
- ## การกำหนด trait
18
+ ## การกำหนด Trait
19
19
20
20
วิธีที่ง่ายที่สุดในการกำหนด trait คือการประกาศด้วย keyword ` trait ` และ indentifier:
21
21
@@ -56,7 +56,7 @@ trait Iterator[A]:
56
56
57
57
การขยาย (extend) ` trait Iterator[A] ` ต้องการ type ` A ` และ implementation ของ method ` hasNext ` และ ` next `
58
58
59
- ## การใช้ traits
59
+ ## การใช้ Trait
60
60
61
61
ใช้ keyword ` extends ` เพื่อขยาย trait จากนั้นให้ implement abstract member ใดๆ ของ trait โดยใช้ keyword ` override ` :
62
62
@@ -121,15 +121,15 @@ iterator.next() // returns 1
121
121
คลาส ` IntIterator ` นี้รับค่า parameter ` to ` เพื่อกำหนดค่าสูงสุด (upper bound) โดยที่คลาส ` IntIterator ` ได้ extend จาก ` Iterator[Int] ` \
122
122
ดังนั้น method ` next ` จะต้อง return ค่าเป็น Int
123
123
124
- ## Subtyping
124
+ ## การใช้ Subtype
125
125
126
126
เมื่อจำเป็นต้องใช้ trait ใดๆ เราสามารถใช้ subtype (คลาสใดก็ตาม ที่ extend มาจาก trait นั้นๆ) แทนได้
127
127
128
- > ** Note by Thai translator:** \
128
+ > *** Note by Thai translator:* **\
129
129
> "เมื่อจำเป็นต้องใช้ trait ใดๆ" ในที่นี้ น่าจะหมายถึงเรามีการระบุไว้ว่า parameter ที่ได้ระบุ type เป็น trait\
130
130
> ดังนั้นเราสามารถใช้ * subtype ใดๆ ที่ implement จาก trait นั้นๆ ได้*
131
131
>
132
- > ลองพิจารณา code นี้
132
+ > ** ลองพิจารณา code นี้: **
133
133
>
134
134
> ``` scala
135
135
> val dog = new Dog (" Harry" ) // คลาส `Dog` เป็น subtype ของ trait `Pet`
You can’t perform that action at this time.
0 commit comments