InheriitanceOriginal Authors: John Lewis and William LoftusModified by การแปล - InheriitanceOriginal Authors: John Lewis and William LoftusModified by ไทย วิธีการพูด

InheriitanceOriginal Authors: John

Inheriitance
Original Authors: John Lewis and William Loftus
Modified by Patrawadee Tanawongsuwan
2
Outlliine
 Class hierarchy
 Inheritance Concept
 protected
 Visibility Modifier Revisited
 super
 Multiple Inheritance
 Overriding and Hiding
 The Object Class
 Abstract Classes
3
Cllass Hiierarchiies
 A class can be derived from another class. This
new class can also become a parent of another
class, forming a class hierarchy
 Inheritance can be shown in a UML class diagram
Vehicle
Wheel2 Wheel4Up
Sedan Truck
4
Cllass Hiierarchiies
 Two children of the same parent are called siblings
 Common features should be put as high in the
hierarchy as is reasonable
 An inherited member is passed continually down the
line
 Therefore, a child class inherits from all its
ancestor classes
 There is no single class hierarchy that is
appropriate for all situations
5
Inheriitance
 Inheritance allows one class to be derived from an
existing one
 A subclass (or child class) is derived from a
superclass (or parent class)
 A subclass’ variables and methods
• are inherited from its parent
• can be created new or modified from inherited ones
 Excellent for software reuse
6
Deriiviing Subcllasses
 To derive a subclass, use extends
class Wheel4Up extends Vehicle {
// class contents
}
 A subclass can be derived from another subclass
class Truck extends Wheel4Up {
// class contents
}
7
The protectedModiifiier
 Visibility modifiers determine which class members
are inherited and which are not
 The protected modifier allows a member of a
parent class to be inherited into a child class
 From a parent class to a child class
• private variables/methods are not inherited
• public variables/methods are inherited
• protected variables/methods are inherited
• Constructors are not inherited, even though they are
public
8
Viisiibiilliity Modiifiier Reviisiited
private yes no no no
yes yes no no
protected yes yes yes no
public yes yes yes yes
Class Package Subclass World
9
The super Reference
 To refer to its parent’s class, use super
10
I am Vehicle
The super Reference
public class Vehicle {
public void me () {
System.out.println ("I am Vehicle");
}
}
public class Wheel4Up extends Vehicle {
public void meAndParent () {
System.out.println ("I am Wheel4Up");
System.out.print ("Also, ");
super.me ();
}
}
Wheel4Up bmw = new Wheel4Up ();
bmw.meAndParent ();
I am Wheel4Up
Also,
11
Wheel4Up honda = new Wheel4Up ();
honda.testNum ();
The super Reference
public class Vehicle {
public int num = 5;
}
public class Wheel4Up extends Vehicle {
public String num = new String ("five");
public void testNum () {
double num = 5.55;
System.out.println (num);
System.out.println (super.num);
System.out.println (this.num);
}
}
5.55
5
five
12
Mulltiiplle Inheriitance
 Multiple inheritance allows deriving one class from
two or more classes
 Java only supports single inheritance
Fish Gecko
Alligator
13
Overriidiing Methods
 A child class can override the definition of an
inherited method in favor of its own
 The new method must have the same signature as the
parent's method, but can have a different body
 If a method is declared with the final modifier,
it cannot be overridden
 The concept of overriding can be applied to data
and is called shadowing or hiding variables
 Shadowing variables should be avoided because it
tends to cause unnecessarily confusing code
14
Overriidiing
public class Vehicle {
public void hello () {
System.out.println ("Hello");
}
}
public class Wheel4Up extends Vehicle {
public void hello () {
System.out.println ("Hello ^-^");
}
}
Vehicle v1 = new Vehicle ();
Wheel4Up v2 = new Wheel4Up ();
v1.hello ();
v2.hello ();
Hello
Hello ^-^
15
Overloading vs.. Overriidiing
 Don't confuse the concepts of overloading and
overriding
 Overloading deals with multiple methods with the
same name, in the same class, but with different
signatures
 Overriding deals with two methods with the same
signature, one in a parent class and one in a child
class
16
The Object Cllass
 A class called Object is defined in the
java.lang package of the Java standard class
library
 In Java, every class is derived, directly or
indirectly, from the Object class
 When a class is defined, unless it explicitly
extends some other class, it is assumed to be
derived from the Object class
public class Vehicle {
// class body
}
“extends Object”
is omitted
17
The Object Cllass
 Therefore, every class inherits methods from the
Object class
 A few handy methods are defined in the Object
class. These methods are inherited by all classes.
• String toString(): returns a String containing class
name and some other information
• boolean equals(Object arg): returns true whenever
two references refer to the same object
 These methods are often overridden
18
toString() Reviisiited
public class Dog {
public int age = 0;
public String hairColor = “white”;
// ...
// overriding toString ()
public String toString () {
String result = new String ();
result += ("Dog: age = " + age);
result += (", hairColor = " + hairColor);
return (result);
}
}
Dog gaga = new Dog ();
System.out.println (gaga);
Before overriding:
Dog@35ce36
After overriding:
Dog: age = 0,
hairColor = white
19
equals()
class Honda {
public char model;
public char color;
public String vin;
// ...
public boolean equals (Object h) {
if ((h instanceof Honda) &&
(model == ((Honda) h).model) &&
(color == ((Honda) h).color))
return (true);
return (false);
}
}
Honda h1 = new Honda ('a', 'r', "2HGEJ2221");
Honda h2 = new Honda ('a', 'r', "2JYCG9623");
System.out.println (h1.equals (h2));
Before overriding:
false
After overriding:
true
20
Abstract Cllasses
 An abstract class is a placeholder in a class
hierarchy that represents a generic concept
 An abstract class cannot be instantiated
 We use the modifier abstract on the class header
to declare a class as abstract:
public abstract class Animal {
// contents
}
21
Methods iin Abstract Cllasses
 Abstract methods
• An abstract class may or may not contain abstract methods
• Abstract methods have only headers (same way as in an
interface)
• Each abstract method must explicitly declare abstract
• An abstract method cannot be defined as final (because it
must be overridden) or static (because it has no
definition yet)
 Non-abstract methods
• An abstract class may or may not contain non-abstract
methods (with bodies) (while methods in an interface can
not have bodies)
22
Abstract Cllasses
 The child of an abstract class must override the
abstract methods of the parent, or it too will be
considered abstract
23
Examplle
abstract class Store {
String name;
void welcome () {
System.out.println ("Welcome to " + name);
}
abstract void showProducts ();
}
• An abstract class may or may
not contain abstract and/or
non- abstract methods.
• Here, it contains both. It also
has one instance variable.
24
Examplle (cont’d)
class FruitStore extends Store {
public FruitStore (String name) {
this.name = name;
}
void showProducts () {
System.out.println ("Pineapple, Watermelon, Guava");
System.out.println ("Mango, Rose Apple, and more");
}
}
FruitStore is required to
override this method because
FruitStore is not abstract .
25
Examplle (cont’d)
class Starbucks extends Store {
public Starbucks () {
name = "Starbucks";
}
void welcome () {
System.out.println ("~*~ Welcome to " + name + " ~*~");
}
void showProducts () {
System.out.println ("~*~ Espresso $2");
System.out.println ("~*~ Cappuccino $3");
System.out.println ("~*~ Latte $3");
}
}
Starbucks chooses to
override this method.
Starbucks is required to
override this method because
Starbucks is not abstract .
26
Examplle (cont’d)
abstract class OverseasStore extends Store {
String country;
public OverseasStore (String name) {
this.name = name;
}
} OverseasStore chooses
to add one more variable.
OverseasStore does not override
void showProducts (), therefore
it remains abstract.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
Inheriitance
ผู้เขียนต้นฉบับ: จอห์นเลวิสและวิลเลียมลอฟตัส
โดย Patrawadee Tanawongsuwan
2
Outlliine
ชั้นลำดับชั้น
สืบทอดแนวคิด
ป้องกัน
เห็นวิเศษณ์ Revisited
ซูเปอร์
สืบทอดหลาย
แทน และซ่อน
คลาสออบเจ็กต์
คลาสนามธรรม
3
Cllass Hiierarchiies
คลาสามารถสืบทอดมาจากคลาสอื่นได้ นี้
ชั้นใหม่สามารถเป็น แม่ของอีก
คลาส ขึ้นรูปชั้นเรียน
สืบทอดสามารถถูกแสดงในไดอะแกรม UML คลา
รถ
Wheel2 Wheel4Up
รถเก๋งรถบรรทุก
4
Cllass Hiierarchiies
เด็กสองแม่เดียวกันเรียกว่าพี่น้อง
ควรจะใส่คุณสมบัติทั่วไปสูงที่สุดในการ
ลำดับชั้นเหมาะสม
สมาชิกการสืบทอดจะทอดอย่างต่อเนื่อง
บรรทัด
ดังนั้น, คลาสลูกสืบทอดมาจากทั้งหมดของ
บรรพบุรุษชั้น
มีลำดับชั้นไม่มีชั้นเดียวที่
เหมาะสมกับสถานการณ์ทั้งหมด
5
Inheriitance
สืบทอดทำให้ชั้นได้มาจากการ
อยู่
ย่อย (หรือชั้นรอง) มาจากเป็น
ซุปเปอร์คลาส (หรือคลาสพาเรนต์)
ย่อยตัวแปรและวิธี
•สืบทอดมาจากหลัก
•สามารถสร้างใหม่ หรือปรับเปลี่ยนจากสืบทอด
ดีเยี่ยมสำหรับการนำซอฟต์แวร์
6
Deriiviing Subcllasses
สามารถรับการย่อย ใช้ขยาย
คลา Wheel4Up ขยายรถ {
/ / เรียนเนื้อหา
}
ย่อยที่สามารถได้รับมาจากย่อยอื่น
คลาสรถขยาย Wheel4Up {
/ / เรียนเนื้อหา
}
7
protectedModiifiier
วิเศษณ์มองเห็นกำหนดสมาชิกคลา
สืบทอดมาไม่ใช่
ปรับป้องกันช่วยให้สมาชิกของ
หลักคลาสการสืบทอดมาในชั้นเรียนเด็ก
จากคลาหลักชั้นเด็ก
•ส่วนตัวแปร/วิธีไม่สืบทอดมา
•สาธารณะตัวแปร/วิธีสืบทอด
•ป้องกันตัวแปร/วิธีสืบทอด
•ตัวสร้างจะไม่ได้รับมา แม้ว่าจะ
สาธารณะ
8
Viisiibiilliity Modiifiier Reviisiited
ไม่มีไม่ใช่ส่วนตัว
ใช่ใช่ไม่มี
ป้องกันใช่ใช่ใช่ไม่
สาธารณะใช่ใช่ใช่ใช่
คลาสแพคเกจย่อยโลก
9
ซูเปอร์อ้างอิง
อ้างถึงระดับของหลัก ใช้ซูเปอร์
10
ฉันรถ
ซูเปอร์อ้างอิง
คลาสาธารณะรถ {
รัฐยกเลิกฉัน() {
System.out.println ("ฉันรถ");
}
}
สาธารณะคลา Wheel4Up ขยายรถ {
โมฆะ meAndParent สาธารณะ() {
System.out.println ("ฉัน Wheel4Up");
System.out.print ("ยัง );
super.me ();
}
}
Wheel4Up bmw =ใหม่ Wheel4Up ()
bmw.meAndParent ();
ฉัน Wheel4Up
ยัง,
11
ฮอนด้า Wheel4Up =ใหม่ Wheel4Up ()
honda.testNum ();
ซูเปอร์อ้างอิง
คลาสาธารณะรถ {
สาธารณะ int num = 5;
}
สาธารณะคลา Wheel4Up ขยายรถ {
สาธารณะสาย num =สตริงใหม่ ("5");
โมฆะ testNum สาธารณะ() {
หนุ่มคู่ = 5.55;
System.out.println (num);
System.out.println (super.num);
System.out.println (this.num);
}
}
5.55
5
five
12
Mulltiiplle Inheriitance
สืบทอดหลายอนุญาตให้บริษัทฯ ชั้นหนึ่งจาก
สอง หรือมากกว่าสองชั้น
Java เท่านั้นสนับสนุนการสืบทอดเดียว
Gecko ปลา
จระเข้
13
Overriidiing วิธี
เรียนเด็กสามารถแทนคำจำกัดความของการ
สืบทอดวิธีสามารถตัวเอง
วิธีใหม่ต้องมีลายเซ็นเดียวกันเป็น
วิธีของแม่ แต่สามารถมีร่างกายที่แตกต่าง
ถ้าวิธีประกาศกับปรับค่าสุดท้าย,
ไม่สามารถแทน
สามารถใช้แนวคิดของการแทนข้อมูล
และเรียกว่าแรเงา หรือซ่อนตัวแปร
แรเงาตัวแปรควรหลีกเลี่ยงเนื่องจากมัน
มีแนวโน้มที่จะ ก่อให้เกิดความสับสนโดยไม่จำเป็นรหัส
14
Overriidiing
คลาสาธารณะรถ {
สวัสดีโมฆะสาธารณะ() {
System.out.println ("Hello");
}
}
สาธารณะคลา Wheel4Up ขยายรถ {
สวัสดีโมฆะสาธารณะ() {
System.out.println ("สวัสดี
-
");
}
}
รถ v1 =()รถใหม่;
Wheel4Up v2 =ใหม่ Wheel4Up ()
v1.hello ()
v2.hello ();
สวัสดี
สวัสดี
-

15
มากเกินไปเทียบกับ... Overriidiing
อย่าสับสนระหว่างแนวคิดของมากเกินไป และ
แทน
Overloading เสนอ มีหลายวิธีด้วยการ
ชื่อเดียวกัน ในระดับเดียวกัน แต่ มีแตกต่างกัน
ลายเซ็น
Overriding เกี่ยวข้องกับวิธีที่สองด้วยเหมือนกัน
ลายเซ็น คลาสพาเรนต์ และในเด็ก
คลา
16
Cllass วัตถุ
คลาเรียกว่าวัตถุกำหนดไว้ในแพคเกจ the
java.lang ชั้นมาตรฐาน Java
ไลบรารี
ใน Java ทุกชั้นเรียนได้ โดยตรง หรือ
อ้อม จากคลา
เมื่อคลาสที่กำหนดไว้ ยกเว้นมันชัดเจน
ขยายประเภทอื่น ๆ มันจะถือ
สืบทอดมาจากคลา
คลาสาธารณะรถ {
/ / เรียนร่างกาย
}
"ขยายวัตถุ"
เป็น
17
Cllass วัตถุ
ดังนั้น ทุกชั้นเรียนสืบทอดวิธีการจาก
วัตถุคลาส
วิธีการมีประโยชน์กี่กำหนดไว้ในวัตถุ
คลาส วิธีการเหล่านี้จะสืบทอดมาจากคลาสทั้งหมด
•สตริ toString(): ส่งกลับค่าสายอักขระประกอบด้วยคลาส
ชื่อและข้อมูลอื่น ๆ
•บูเท่ากับ (อาร์กิวเมนต์ของค่าวัตถุ): คืนค่าจริงเมื่อใดก็ตาม
สองอ้างอิงถึงวัตถุเดียวกัน
วิธีการเหล่านี้มัก overridden
18
toString() Reviisiited
คลาสาธารณะสุนัข {
int สาธารณะอายุ = 0;
สาธารณะสาย hairColor = "สีขาว";
/ /...
/ / แทน toString ()
สาธารณะสาย toString () {
สตริงที่ผล =()อักขระใหม่;
ผล = ("สุนัข: อายุ =" อายุ);
ผล = (", hairColor =" hairColor);
กลับ (ผล);
}
}
หมากาก้า =()สุนัขใหม่
System.out.println (กาก้า);
ก่อน overriding:
Dog@35ce36
After แทน:
สุนัข: อายุ = 0,
hairColor =ขาว
19
เท่ากับ()
คลาสฮอนด้า {
อักขระสาธารณะรูปแบบ
สีอักขระสาธารณะ;
สาธารณะสายวิน;
/ /...
บูลีนสาธารณะเท่ากับ (วัตถุ h) {
ถ้า (&& (h instanceof ฮอนด้า)
(รุ่น==.model (h (ฮอนด้า))) &&
(สี==.color (h (ฮอนด้า))))
กลับ (จริง);
กลับ (ปลอม);
}
}
h1 ฮอนด้า =ฮอนด้าใหม่ ('a', 'r', "2HGEJ2221");
ฮอนด้า h2 =ฮอนด้าใหม่ ('a', 'r', " 2JYCG9623");
System.out.println (h1.equals (h2));
ก่อนแทน:
เท็จ
หลังแทน:
จริง
20
บทคัดย่อ Cllasses
คลาสนามธรรมเป็นตัวยึดในชั้นเรียน
ลำดับชั้นที่แสดงถึงแนวคิดทั่วไป
ไม่สามารถสร้างอินสแตนซ์คลาสนามธรรม
เราใช้ย่อปรับระดับหัว
ประกาศคลาสเป็นบทคัดย่อ:
สาธารณะคลาสนามธรรมสัตว์ {
/ / เนื้อหา
}
21
แนวทางวิธีการนามธรรม Cllasses
บทคัดย่อวิธี
•คลาสนามธรรมอาจ หรืออาจไม่ประกอบด้วยวิธีการแบบนามธรรม
•วิธีการนามธรรมมีเฉพาะส่วนหัว (เหมือนในการ
อินเทอร์เฟซ)
•แต่ละวิธีการนามธรรมต้องชัดเจนประกาศนามธรรม
•วิธีการนามธรรมไม่สามารถกำหนดเป็นสุดท้าย (เนื่องจากมัน
ต้องแทน) หรือคง (เนื่องจากไม่มี
นิยามได้)
วิธีการนามธรรมไม่ใช่
•คลาสนามธรรมอาจ หรืออาจไม่ประกอบด้วยบทคัดย่อไม่
วิธี (มีศพ) (ในขณะที่วิธีการในอินเทอร์เฟซสามารถ
ไม่มีเนื้อ)
22
Cllasses นามธรรม
รองของคลาสนามธรรมต้องแทน
วิธีการนามธรรมของแม่ หรือมันเกินไปจะ
พิจารณานามธรรม
23
Examplle
เก็บคลาส abstract {
ชื่อสตริ;
โมฆะ()ยินดีต้อนรับ {
System.out.println ("ยินดีต้อนรับสู่" ชื่อ);
}
โมฆะ showProducts () บทคัดย่อ
}
•คลาสนามธรรมอาจ หรืออาจ
ประกอบด้วยบทคัดย่อและ/ หรือ
วิธีการนามธรรมไม่
•ที่นี่ มันประกอบด้วยทั้ง มันยัง
ได้หนึ่งอินสแตนซ์ตัวแปร
24
Examplle (cont จะ)
คลา FruitStore ขยายร้านค้า {
สาธารณะ FruitStore (สตริงที่ชื่อ) {
this.name =ชื่อ;
}
โมฆะ(showProducts) {
System.out.println ("สับปะรด แตงโม Guava");
System.out.println ("มะม่วง ชมพู่ และอื่นๆ");
}
}
FruitStore ถูกต้อง
แทนวิธีการนี้เนื่องจาก
FruitStore ไม่ใช่นามธรรม
25
Examplle (cont จะ)
ชั้นสตาร์บัคส์ขยายร้านค้า {
สาธารณะคาเฟ่() {
ชื่อ = "สตาร์บัคส์";
}
โมฆะ()ยินดีต้อนรับ {
System.out.println (" ~ * ~ ยินดีต้อนรับสู่"ชื่อ" ~ * ~ ");
}
โมฆะ(showProducts) {
System.out.println (" ~ * ~ $2");
System.out.println เอสเปรสโซ (" ~ * ~ $3");
System.out.println คาปูชิโน่ (" ~ * ~ ลาเต้ $3 ");
}
}
ชอบเลือกที่จะ
แทนวิธีนี้
Starbucks จะต้อง
แทนวิธีการนี้เนื่องจาก
สตาร์บัคส์ไม่ใช่นามธรรม
26
Examplle (cont จะ)
คลาสนามธรรม OverseasStore ขยายร้าน {
สตริประเทศ;
OverseasStore สาธารณะ (สตริงที่ชื่อ) {
this.name =ชื่อ;
}
} OverseasStore เลือก
เพิ่มหนึ่งเพิ่มเติมตัวแปร
OverseasStore แทนไม่
โมฆะ(showProducts) ดังนั้น
ยังคงนามธรรม
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
Inheriitance
ผู้เขียนต้นฉบับ: จอห์นลูอิสและวิลเลียม Loftus
ดัดแปลงโดย Patrawadee Tanawongsuwan
2
Outlliine
? ลำดับชั้น
? มรดกแนวคิด
? ป้องกัน
? ทัศนวิสัยปรับปรุงเยือน
? สุด
? หลายมรดก
? เอาชนะและซ่อน
? ชั้นวัตถุ
? เรียนบทคัดย่อ
3
Cllass Hiierarchiies
? ชั้นจะได้รับจากชั้นอื่น นี้
ชั้นเรียนใหม่ยังสามารถกลายเป็นผู้ปกครองอีก
ชั้นสร้างลำดับชั้น
? มรดกสามารถแสดงในแผนภาพชั้น UML
ยานพาหนะ
Wheel2 Wheel4Up
รถเก๋งรถบรรทุก
4
Cllass Hiierarchiies
? เด็กสองคนของพ่อแม่เดียวกันจะเรียกว่าพี่น้อง
? คุณสมบัติทั่วไปควรจะใส่สูงใน
ลำดับชั้นที่มีความสมเหตุสมผล
? สมาชิกได้รับการถ่ายทอดผ่านอย่างต่อเนื่องลง
เส้น
? ดังนั้นการเรียนของเด็กสืบทอดมาจากทุก
ชั้นเรียนบรรพบุรุษ
? ไม่มีลำดับชั้นเดียวที่เป็น
ที่เหมาะสมสำหรับทุกสถานการณ์
5
Inheriitance
? มรดกช่วยให้หนึ่งในชั้นเรียนที่ได้รับจาก
อย่างใดอย่างหนึ่งที่มีอยู่
? รองชั้น (หรือเด็ก) ที่ได้มาจาก
superclass (หรือระดับผู้ปกครอง)
? ตัวแปรประเภทรอง 'และวิธีการ
•ได้รับมาจากแม่ของมัน
•สามารถสร้างขึ้นใหม่หรือการปรับเปลี่ยนจากคนที่ได้รับมรดกมา
? ที่ดีสำหรับนำมาใช้ซอฟต์แวร์
6
Deriiviing Subcllasses
? ที่จะได้รับประเภทรองใช้ขยาย
ชั้น Wheel4Up ขยาย {ยานพาหนะ
เนื้อหา / / คลาส
}
? รองจะได้รับจากอีกประเภทรอง
รถบรรทุกชั้นขยาย Wheel4Up {
เนื้อหา / / คลาส
}
7
protectedModiifiier
? การปรับเปลี่ยนการแสดงผลที่กำหนดว่าสมาชิกชั้น
ได้รับมาและที่ไม่ได้
? ปรับปรุงการป้องกันช่วยให้สมาชิกของ
ระดับผู้ปกครองจะได้รับมรดกเป็นชั้นเด็ก
? จากระดับผู้ปกครองในชั้นเรียนเด็ก
•ตัวแปรเอกชน / วิธีการที่ไม่ได้รับการถ่ายทอด
•ตัวแปรสาธารณะ / วิธีการสืบทอด
•ป้องกันตัวแปร / วิธีการสืบทอด
•ก่อสร้างที่ไม่ได้รับการถ่ายทอดถึงแม้ว่าพวกเขาเป็น
ประชาชน
8
Viisiibiilliity Modiifiier Reviisiited
ส่วนตัวใช่ไม่มีไม่มี
ใช่ใช่ไม่มี
การคุ้มครองใช่ใช่ใช่ไม่มี
ประชาชนใช่ใช่ใช่ใช่
ชั้นแพคเกจซับคลาสโลก
9
อ้างอิงสุด
? ดูที่ชั้นแม่ของใช้สุด
10
ผมยานพาหนะ
อ้างอิงซุปเปอร์
คลาสยานพาหนะสาธารณะ {
ประชาชนเป็นโมฆะฉัน () {
System.out.println ("ผมยานพาหนะ");
}
}
สาธารณะคุณภาพระดับ Wheel4Up ขยายยานพาหนะ {
meAndParent โมฆะสาธารณะ () {
System.out.println ("ผม Wheel4Up");
ระบบออก ("นอกจากนี้");
super.me ();
}
}
Wheel4Up bmw = Wheel4Up ใหม่ ();
bmw.meAndParent ();
ผม Wheel4Up
นอกจากนี้
11
Wheel4Up honda = Wheel4Up ใหม่ ();
honda.testNum ();
อ้างอิงซุปเปอร์
คลาสยานพาหนะของประชาชน {
NUM int สาธารณะ = 5;
}
สาธารณะคุณภาพระดับ Wheel4Up ขยายยานพาหนะ {
NUM สาธารณะ String = new String ("ห้า" );
testNum โมฆะสาธารณะ () {
คู่ num = 5.55;
System.out.println num ();
System.out.println (super.num);
System.out.println (this.num);
}
}
5.55
5
ห้า
12
Mulltiiplle Inheriitance
? มรดกหลายช่วยให้มาระดับหนึ่งจาก
สองคนหรือมากกว่าการเรียน
? Java สนับสนุนเฉพาะมรดกเดียว
ปลาตุ๊กแก
จระเข้
13
Overriidiing วิธี
? ชั้นเด็กสามารถแทนที่ความหมายของการ
ได้รับการถ่ายทอดวิธีการในความโปรดปรานของตัวเอง
? วิธีการใหม่จะต้องมีลายเซ็นเหมือน
วิธีการของผู้ปกครอง แต่สามารถมีร่างกายที่แตกต่าง
? หากวิธีการที่มีการประกาศกับปรับปรุงสุดท้าย
ก็ไม่สามารถแทนที่
? แนวคิดของการเอาชนะที่สามารถนำไปใช้กับข้อมูล
และเรียกว่าแชโดว์หรือซ่อนตัวแปร
? ตัวแปรเงาควรหลีกเลี่ยงเพราะมัน
มีแนวโน้มที่จะก่อให้เกิดความสับสนโดยไม่จำเป็นรหัส
14
Overriidiing
เรียนสาธารณะยานพาหนะ {
ประชาชนเป็นโมฆะสวัสดี () {
System.out.println ("สวัสดี");
}
}
สาธารณะคุณภาพระดับ Wheel4Up ขยายยานพาหนะ {
ประชาชนเป็นโมฆะสวัสดี () {
System.out.println ("สวัสดี ^ - ^");
}
}
v1 = ยานพาหนะยานพาหนะใหม่ ();
Wheel4Up v2 = Wheel4Up ใหม่ ();
v1.hello ();
v2.hello ();
สวัสดี
สวัสดี ^ - ^
15
เมื่อเทียบกับการบรรทุกเกินพิกัด. Overriidiing
? อย่าสับสนแนวคิดของการบรรทุกเกินพิกัดและ
เอาชนะ
? ข้อเสนอการบรรทุกเกินพิกัดด้วยวิธีการหลาย
ชื่อเดียวกันในระดับเดียวกัน แต่มีที่แตกต่างกัน
ลายเซ็น
? เอาชนะข้อเสนอมีสองวิธีการแบบเดียวกับที่
ลายเซ็นซึ่งเป็นหนึ่งในชั้นเรียนของผู้ปกครองและเป็นหนึ่งในเด็ก
ชั้น
16
วัตถุ Cllass
? ชั้นเรียนที่เรียกว่าวัตถุที่ถูกกำหนดไว้ใน
แพคเกจ java.lang ของชั้น Java มาตรฐาน
ห้องสมุด
? ใน Java ทุกระดับได้มาโดยตรงหรือ
โดยอ้อมจากชั้นวัตถุ
? เมื่อเรียนถูกกำหนดไว้อย่างชัดเจนจนกว่าจะ
ขยายบางส่วนชั้นอื่น ๆ ก็จะถือว่าได้รับ
มาจากชั้นวัตถุ
คลาสยานพาหนะของประชาชน {
ร่างกาย / / คลาส
}
"ขยายวัตถุ"
ถูกละไว้
17
วัตถุ Cllass
? ดังนั้นทุกระดับสืบทอดวิธีการจาก
ชั้นวัตถุ
? วิธีการที่มีประโยชน์น้อยที่กำหนดไว้ในวัตถุ
ชั้น วิธีการเหล่านี้จะสืบเชื้อสายมาจากทุกชนชั้น
• String toString () ส่งกลับสตริงชั้นที่มี
ชื่อและบางข้อมูลอื่น ๆ
•เท่ากับบูลีน (หาเรื่อง Object): ผลตอบแทนจริงเมื่อใดก็ตามที่
สองอ้างอิงอ้างถึงวัตถุเดียวกัน
? วิธีการเหล่านี้มักจะถูกแทนที่
18
toString () Reviisiited
เรียนสาธารณะสุนัข {
int ประชาชนอายุ = 0;
สีผมสาธารณะ String = "สีขาว";
/ / ...
/ / เอาชนะ toString ()
สาธารณะ String toString () {
String ผล = new String ();
ผล + = ("สุนัขอายุ =" อายุ +);
ผล + = (", สีผม =" + สีผม);
กลับ (ผล);
}
}
สุนัขโง่ = สุนัขใหม่ ();
System.out.println (โง่);
ก่อนที่จะเอาชนะ:
สุนัข @ 35ce36
หลังจากเอาชนะ:
สุนัขอายุ = 0
= สีผมสีขาว
19
เท่ากับ ()
{ชั้นฮอนด้า
รุ่นถ่านสาธารณะ
สีถ่านสาธารณะ
วินสาธารณะ String;
/ / ...
บูลีนเท่ากับสาธารณะ ( วัตถุชั่วโมง) {
ถ้า ((ซ instanceof ฮอนด้า) &&
(รุ่นรุ่น == ((ฮอนด้า) ต่อชั่วโมง).) &&
(สี == ((ฮอนด้า) ต่อชั่วโมง) สี.))
ผลตอบแทน (จริง);
กลับ (เท็จ);
}
}
ฮอนด้า h1 = ใหม่ฮอนด้า ('', 'R' "2HGEJ2221");
ฮอนด้า h2 = ใหม่ฮอนด้า ('', 'R' "2JYCG9623");
System.out.println (h1.equals ( h2));
ก่อนที่จะเอาชนะ:
เท็จ
หลังจากที่เอาชนะ:
จริง
20
บทคัดย่อ Cllasses
? ระดับนามธรรมเป็นตัวยึดในชั้น
ลำดับชั้นที่แสดงถึงแนวคิดทั่วไป
? ระดับนามธรรมไม่สามารถ instantiated
? เราใช้นามธรรมปรับปรุงด้านบนของแต่ละชั้น
เรียนที่จะประกาศเป็นนามธรรม:
ระดับนามธรรมสาธารณะสัตว์ {
/ เนื้อหา /
}
21
วิธี IIN บทคัดย่อ Cllasses
? วิธีการบทคัดย่อ
•ระดับนามธรรมอาจหรือไม่อาจจะมีวิธีการที่เป็นนามธรรม
•วิธีการบทคัดย่อมีส่วนหัวเท่านั้น (แบบเดียวกับใน
อินเตอร์เฟซ)
•แต่ละวิธีนามธรรมอย่างชัดเจนต้องประกาศนามธรรม
•วิธีนามธรรมไม่สามารถกำหนดเป็นขั้นสุดท้าย (เพราะมัน
ต้องจะถูกแทนที่ ) หรือคงที่ (เพราะมันไม่มี
คำนิยามยัง)
? ไม่ใช่วิธีการที่เป็นนามธรรม
•ระดับนามธรรมอาจหรือไม่อาจจะมีที่ไม่เป็นนามธรรม
วิธีการ (ร่าง) (ในขณะที่วิธีการในการติดต่อสามารถ
ไม่ได้มีร่างกาย)
22
บทคัดย่อ Cllasses
? เด็กของระดับนามธรรมต้องแทนที่
วิธีการนามธรรมของผู้ปกครองหรือมันก็จะได้
รับการพิจารณาเป็นนามธรรม
23
Examplle
นามธรรมชั้นเก็บ {
ชื่อ String;
ต้อนรับเป็นโมฆะ () {
System.out.println ("ยินดีต้อนรับสู่" ชื่อ +);
}
showproducts นามธรรมเป็นโมฆะ ();
}
•ระดับนามธรรมอาจจะหรืออาจ
ไม่ได้มีนามธรรมและ / หรือ
วิธีการที่ไม่เป็นนามธรรม
•ที่นี่ก็มีทั้ง นอกจากนี้ยัง
มีตัวแปรหนึ่งตัวอย่าง
24
Examplle (ต่อ)
FruitStore ชั้นขยายเก็บ {
FruitStore สาธารณะ (ชื่อ String) {
ชื่อ this.name =;
}
showproducts เป็นโมฆะ () {
System.out.println ("สับปะรด, แตงโม, ฝรั่ง ");
System.out.println ("มะม่วง, แอปเปิ้ลโรสและอื่น ๆ ");
}
}
FruitStore จะต้อง
แทนที่วิธีนี้เพราะ
FruitStore ไม่ได้เป็นนามธรรม
25
Examplle (ต่อ)
ชั้นสตาร์บัขยายเก็บ {
ประชาชน Starbucks ( ) {
ชื่อ = "Starbucks";
}
ต้อนรับเป็นโมฆะ () {
System.out.println ("~ * ~ ยินดีต้อนรับสู่" + ชื่อ + "~ * ~");
}
showproducts เป็นโมฆะ () {
System.out.println (" ~ * ~ เอสเพรสโซ่ $ 2 ");
System.out.println ("~ * ~ คาปูชิโน $ 3");
System.out.println ("~ * ~ Latte 3 $");
}
}
Starbucks เลือกที่จะ
แทนที่วิธีการนี้
สตาร์บัจำเป็นต้องมี เพื่อ
แทนที่วิธีนี้เพราะ
ไม่ได้เป็นสตาร์บันามธรรม
26
Examplle (ต่อ)
OverseasStore ระดับนามธรรมขยายเก็บ {
ประเทศ String;
OverseasStore สาธารณะ (ชื่อ String) {
ชื่อ this.name =;
}
} OverseasStore เลือก
ที่จะเพิ่มตัวแปรอีกหนึ่ง
OverseasStore ไม่แทนที่
showproducts เป็นโมฆะ () ดังนั้น
มันก็ยังคงเป็นนามธรรม
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ผู้เขียนต้นฉบับ inheriitance
: John Lewis และวิลเลียม Loftus
แก้ไขโดย patrawadee tanawongsuwan
2

 outlliine เรียนลำดับขั้น
 มรดกแนวคิด
 ป้องกัน
 ทัศนวิสัยที่  Revisited


 ซูเปอร์  หลายมรดกแทนและซ่อนอยู่
 วัตถุคลาสนามธรรมชั้นเรียน
3

 cllass hiierarchiies
 เป็น ชั้นได้มาจากคลาสอื่น นี้
ชั้นเรียนใหม่สามารถเป็นผู้ปกครองของคลาสอื่น
รูปชั้นลำดับขั้น
 มรดกที่สามารถแสดงในแผนภาพ UML class

wheel2 รถเก๋งรถบรรทุกรถ wheel4up

4
cllass hiierarchiies
 สองเด็กของพ่อแม่เดียวกัน เรียกว่า พี่น้อง
 คุณสมบัติทั่วไป ควรใส่เป็นสูงใน
ลำดับชั้นเป็นมีเหตุผล
 สืบทอดสมาชิกผ่านอย่างต่อเนื่องลง

 บรรทัดดังนั้นเด็กเรียนสืบทอดจากบรรพบุรุษของชั้น

 ไม่มีชั้นเดียวลำดับชั้นที่เหมาะสมสำหรับทุกสถานการณ์

5
มรดก  inheriitance
ช่วยให้ระดับหนึ่ง ที่จะได้มาจากที่มีอยู่เดิม

 subclass ( หรือห้องเด็ก ) ได้มาจากซุปเปอร์คลาส ( Class หรือแม่ )

 subclass ตัวแปรและวิธีการ
-
เป็นมรดกจากพ่อแม่ของมัน- สามารถสร้างขึ้นใหม่ หรือดัดแปลงจากการสืบทอดที่ยอดเยี่ยมสำหรับซอฟต์แวร์ที่ใช้ 

6
deriiviing subcllasses
 เพื่อสืบทอด subclass ใช้ขยายชั้นเรียน wheel4up ขยายรถ {


}
/ / เรียนเนื้อหา  subclass สามารถได้มาจากอีกคลาส
คลาสรถบรรทุกขยาย wheel4up {
/ / เรียนเนื้อหา
}
7

 มองเห็น protectedmodiifiier ปรับเปลี่ยนกำหนดระดับชั้นสมาชิก
เป็นมรดกและที่ไม่ได้
 ป้องกันที่ช่วยให้สมาชิกของ
ผู้ปกครองชั้นเรียนจะสืบทอดในชั้นเรียนเด็ก
 จากผู้ปกครองชั้นเรียนเพื่อเรียนเด็ก
- ส่วนบุคคลตัวแปร / วิธีการไม่สืบทอด
-
ตัวแปรสาธารณะวิธีป้องกันการ - ตัวแปรวิธีสืบทอด
- คอนสตรักเตอร์ไม่สืบทอด แม้ว่าพวกเขาจะ

8
สาธารณะviisiibiilliity modiifiier reviisiited
ส่วนตัวครับไม่
< default > ใช่ ใช่ ไม่ ใช่ ใช่ ใช่ ไม่คุ้ม

สาธารณะครับ ครับ ครับ ครับ

9
แพคเกจซับคลาสโลก Super อ้างอิง
 อ้างถึงของผู้ปกครองชั้นเรียน ใช้ซูเปอร์ 10

ผม

รถซูเปอร์อ้างอิงสาธารณะ คลาสยานพาหนะสาธารณะ {

system.out.println เป็นโมฆะ ( ) { ( " ผมรถ

" ) ; } }
{
wheel4up ยานพาหนะสาธารณะขยายชั้นเรียนmeandparent โมฆะสาธารณะ ( ) {
system.out.println ( " ผม wheel4up " ) ;
system.out.print ( " และ " ) ;
super.me ( ) ; } }


wheel4up wheel4up BMW ใหม่ = ( ) ; ( ) ;

bmw.meandparent ผม wheel4up
,

wheel4up 11 ฮอนด้า wheel4up ( = ใหม่ ) ;
honda.testnum ( ) ;

ชื่อคลาสรถซูเปอร์อ้างอิง {
สาธารณะ int num = 5 ;
}
{
wheel4up ยานพาหนะสาธารณะขยายชั้นเรียนสาธารณะ String num = ข้อความใหม่ ( " 5
" ) ;testnum โมฆะสาธารณะ ( ) {
คู่ num = 5.55 ;
system.out.println ( น้ำ ) ;
system.out.println ( ซูเปอร์นัม ) ;
system.out.println ( Num . ) ;
}
}

5
5 ชั้น 12

mulltiiplle inheriitance
 หลายมรดกให้โรงเรียน 1 ห้องเรียน จากห้องเรียน

สองหรือมากกว่า  Java สนับสนุนมรดก

เดี่ยวปลาตุ๊กแกจระเข้


overriidiing 13 วิธี  ชั้นเด็กสามารถยกเลิกคำนิยามของ
ได้รับการถ่ายทอดวิธีในความโปรดปรานของมันเอง
 วิธีใหม่ ต้องมีลายเซ็นต์เดียวกันวิธี
พ่อแม่ แต่สามารถมีร่างกายที่แตกต่างกัน 
ถ้าวิธีการประกาศด้วยส่วนขยายสุดท้าย

มันไม่สามารถถูกแทนที่  แนวคิดแทนสามารถใช้ข้อมูล
และเรียกว่าเงาหรือ ตัวแปรตามตัวแปรซ่อน
 ควรหลีกเลี่ยงเพราะ
มีแนวโน้มที่จะทำให้เรื่องสับสนรหัส


14 overriidiing คลาสยานพาหนะสาธารณะ {
ประชาชนเป็นโมฆะสวัสดี ( ) {
system.out.println ( " hello " ) ; } }


ชื่อคลาส wheel4up ขยายรถสาธารณะ {

system.out.println โมฆะสวัสดี ( ) { ( " สวัสดีครับ
-
" ) ; } }


รถ V1 = รถใหม่ ( ) ;
wheel4up wheel4up V2 = ใหม่ ( ) ; ( ) ;

v1.hello v2.hello ( ) ;
สวัสดีค่ะ
สวัสดีค่ะ
-

15
โหลด vs . overriidiing
 อย่าสับสนกับแนวคิดของโหลดและ

 เอาชนะโหลด เกี่ยวข้องกับหลายวิธีกับ
ชื่อเดียวกัน อยู่ห้องเดียวกัน แต่แตกต่างกัน

 ตรวจสอบลายเซ็นแทนด้วยสองวิธีที่มีลายเซ็นเดียวกัน
, หนึ่งในคลาสแม่และหนึ่งในเด็ก


16 ชั้นวัตถุ cllass
 คลาสเรียกว่า วัตถุที่ถูกกำหนดใน
java.lang แพคเกจของจาวาคลาสห้องสมุดมาตรฐาน

 ใน Java ทุกระดับได้มาโดยตรงหรือโดยอ้อมจากวัตถุคลาส
,
 เมื่อคลาสที่กำหนด เว้นแต่บางอื่น ๆอย่างชัดเจน
ขยายชั้นเรียน จึงสันนิษฐานได้ว่าเป็นวัตถุคลาส

มาจากคลาสยานพาหนะสาธารณะ {

} / / ชั้นร่างกาย " ขยายวัตถุ "

ถูกตัดออก


17 วัตถุ cllass  ดังนั้นทุกคลาสสืบทอดจากคลาส

วิธีการวัตถุ สะดวกบางวิธีการที่กำหนดไว้ในวัตถุ
เรียน วิธีการเหล่านี้จะสืบทอดโดยชั้นเรียนทั้งหมด .
- สตริง tostring() : สตริงที่มีชื่อและข้อมูลอื่น ๆเรียน

บริการบูลีนเท่ากับ ( ARG วัตถุ ) : ผลตอบแทนที่แท้จริงเมื่อใดก็ ตามที่
2 อ้างอิงอ้างถึงวัตถุ 
เดียวกันวิธีการเหล่านี้มักจะถูกแทนที่


ชั้น 18 tostring() reviisiited สุนัข {
สาธารณะ int สาธารณะ อายุ = 0 ;
สาธารณะ String haircolor = " สีขาว " ;
/ / . . . . . . .
/ / /
( ) แทน tostring สาธารณะ ( ) {
tostring สตริงสตริงสตริงผล = ใหม่ ( ) ;
ผล = ( " สุนัข : อายุ = " อายุ ) ;
ผล = ( " haircolor = " haircolor ) ;
กลับ ( ผล ) ;
}
}
สุนัขหมากาก้า = ใหม่ ( ) ;
system.out.println ( กาก้า ) ;
:
@ 35ce36 ก่อนเอาชนะหมาแทน :

หลังจากสุนัข : อายุ = 0 =


haircolor สีขาว 19 equals() {

เรียนฮอนด้าสาธารณะ char แบบจำลอง

สาธารณะสตริงสาธารณะ ชาร์สี วิน ;
/ / . . . . . . .
สาธารณะบูลีนเท่ากับ ( Object H ) { ถ้า (
( H instanceof ฮอนด้า ) &&
( แบบ = = ( ( ฮอนด้า ) H ) รุ่น ) &&
( สี = = ( ( ฮอนด้า ) H )
กลับสี ) ( จริง ) ; กลับเท็จ ;

) }
}
ฮอนด้า Honda ใหม่ H1 = ( ' ' r ' ' 2hgej2221 " ) ; H2
ฮอนด้า Honda ใหม่ = ( ' ' r ' ' 2jycg9623 " ) ;
system.out.println ( h1.equals ( H2 ) ) ;
ก่อนเอาชนะ :

:
จริงเท็จหลังจากเอาชนะ
20
cllasses นามธรรม
 เป็นคลาสนามธรรมคือ ยึดในคลาส
ลำดับชั้นที่เป็นแนวคิดทั่วไป
 ไม่ได้คลาสนามธรรมเป็น instantiated
 เราใช้ที่เป็นนามธรรมในระดับหัว
ประกาศคลาสที่เป็นนามธรรม :
สาธารณะนามธรรมชั้นสัตว์ {

} / / เนื้อหา
21
วิธีการในนามธรรมนามธรรม
-
 cllasses วิธีการเรียนนามธรรม หรืออาจประกอบด้วย
วิธีนามธรรมแต่ละวิธีมีเฉพาะส่วนหัวนามธรรม ( แบบเดียวกับใน

- นามธรรมอินเตอร์เฟซ ) แต่ละวิธีต้องชัดเจนประกาศนามธรรม
- วิธีนามธรรมไม่ได้ถูกกำหนดเป็นที่สุด ( เพราะมัน
ต้องถูกแทนที่ ) หรือแบบคงที่ ( เพราะมันไม่มีความหมายเลย

)  ไม่ใช่วิธีการนามธรรม
- ชั้นเรียนบทคัดย่ออาจ หรืออาจมีวิธีการไม่นามธรรม
( ศพ ) ( ในขณะที่วิธีการในการติดต่อสามารถ
ไม่ได้มีร่างกาย )
cllasses 22

 นามธรรมเด็กของคลาสนามธรรมต้องยกเลิก
วิธีนามธรรมของพ่อแม่ หรือมันมากเกินไปจะพิจารณานามธรรม



examplle นามธรรมชั้น 23 ร้าน {
ชื่อสตริงโมฆะ ;
ยินดีต้อนรับ ( ) {
system.out.println ( " ยินดีต้อนรับสู่ " ชื่อ )
}
นามธรรมเป็นโมฆะ showproducts ( ) ;
}
-
เป็นนามธรรมชั้นอาจจะหรืออาจจะไม่ประกอบด้วย บทคัดย่อ และ / หรือ
-
- ที่นี่เป็นวิธีการมันมีทั้ง มันก็มีตัวอย่างหนึ่ง

24 ตัวแปร ( ต่อ )

examplle คลาส fruitstore ขยายร้าน {
fruitstore สาธารณะ ( ชื่อ String ) {

}
ชื่อ this.name = โมฆะ showproducts ( ) {
system.out.println ( " สับปะรด แตงโม ฝรั่ง " ) ;
system.out.println ( " มะม่วง ชมพู่ และเพิ่มเติม " ) ; } }


fruitstore ต้อง

fruitstore ยกเลิกวิธีนี้เพราะเป็นนามธรรม

25examplle ( ต่อ )

ร้านสตาร์บัคส์ขยายชั้น { ประชาชน Starbucks ( ) {
ชื่อ = " สตาร์บัคส์ " ;
} {

ยินดีต้อนรับ ( Void ) system.out.println ( " ~ * ~ ยินดีต้อนรับสู่ " ชื่อ " ~ * ~ " ) ;
} {

showproducts เป็นโมฆะ ( ) system.out.println ( " ~ * ~ เอสเปรสโซ $ 2 " ) ;
system.out.println ( " ~ * ~ คา $ 3 " ) ;
system.out.println ( " ~ * ~ เต้ $ 3 " ) ; } }




แทนที่สตาร์บัคส์เลือกวิธีนี้จะต้อง
.
สตาร์บัคส์ยกเลิกวิธีการนี้เพราะสตาร์บัคส์ไม่ใช่นามธรรม
.
26 ( ต่อ )

examplle นามธรรมชั้น overseasstore ขยายร้าน {

overseasstore สายประเทศ สาธารณะ ( ชื่อ String ) ชื่อ this.name {

} } =

overseasstore เลือกเพิ่มอีกหนึ่งตัวแปร overseasstore ไม่ได้แทนที่

( showproducts โมฆะ ) ดังนั้น
มันยังคงเป็นนามธรรม
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: