Professional Documents
Culture Documents
الوراثة في جافا - Java inheritance
الوراثة في جافا - Java inheritance
أﺳﺎﺳﻴﺎت اﻟﻠﻐﺔ
اﻟﻤﺘﻐﻴﺮات- Java
اﻟﺪوال- Java
اﻟﻌﻮاﻣﻞ- Java
اﻟﺤﻠﻘﺎت- Java
اﻟﺸﺮوط- Java
اﻷﻋﺪاد- Java
اﻷﺣﺮف- Java
اﻟﻨﺼﻮص- Java
اﻟﻤﺼﻔﻮﻓﺎت- Java
اﻹﺳﺘﺜﻨﺎءات- Java
اﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﻴﺔ
Modifiers - Java
Encapsulation - Java
Inheritance - Java
Overriding - Java
Overloading - Java
Abstraction - Java
Interfaces - Java
Polymorphism - Java
Enum - Java
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
https://harmash.com/java/java-inheritance/ 1/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ﻣﻘﺎﻻت اﻟﻤﻠﻔﺎت
ﻣﻊ ▾ - Javaاﻟﺘﻌﺎﻣﻞ
اﻟﻤﻜﺘﺒﺔ
HARMASH.COM
- Javaاﻟﻤﺰاﻣﻨﺔ
Collection - Java
Generics - Java
- Javaاﻟﺸﺒﻜﺎت
- Javaﺗﻌﺪد اﻟﻤﻬﺎم
- Javaﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت
ﺗﻌﻠﻢ اﻟﻤﺰﻳﺪ
- Javaﻣﻘﺎﻻت ﺟﺎﻓﺎ
إﻋﻼن
Java
اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
وراﺛﺔ :ﺗﻌﻨﻲ Inheritanceﻓﻲ اﻟﻠﻐﺔ اﻹﻧﺠﻠﻴﺰﻳﺔ .و ﻟﻘﺪ ذﻛﺮت ﻫﺬه اﻟﻜﻠﻤﺔ ﻋﺪة ﻣﺮات ﻓﻲ دروس ﺳﺎﺑﻘﺔ.
ﻓﻲ ﺟﺎﻓﺎ ,اﻟﻜﻼس ﻳﻤﻜﻨﻪ أن ﻳﺮث ﻣﻦ ﻛﻼس آﺧﺮ ,و ﺑﺎﻟﺘﺎﻟﻲ ﻳﺤﺼﻞ ﻋﻠﻰ اﻟﺪوال و اﻟﻤﺘﻐﻴﺮات اﻟﻤﻮﺟﻮدة ﻓﻲ ﻫﺬا اﻟﻜﻼس.
ً
ﺟﺪا .ﻓﻤﺜﻼً إذا ﻛﻨﺖ ﺗﺮﻳﺪ إﻧﺸﺎء ﻛﻼس ﺟﺪﻳﺪ و ﻻﺣﻈﺖ أﻧﻪ ﻳﻮﺟﺪ ﻛﻼس ﺟﺎﻫﺰ ﻳﺤﺘﻮي ﻋﻠﻰ ﻛﻮدات ﻗﺪ ﺗﻔﻴﺪك ﻳﻤﻜﻨﻚ اﺳﺘﻐﻼﻟﻬﺎ ﺑﺪل ﻓﻜﺮة اﻟﻮراﺛﺔ ﺑﺴﻴﻄﺔ ,ﻟﻜﻦ ﻓﺎﺋﺪﺗﻬﺎ ﻗﻮﻳﺔ
ﻛﺘﺎﺑﺘﻬﺎ ﻣﻦ اﻟﺼﻔﺮ ,أي ﻳﻤﻜﻨﻚ ﺟﻌﻞ اﻟﻜﻼس اﻟﺬي ﻗﻤﺖ ﺑﺘﻌﺮﻳﻔﻪ ﻳﺮث ﻫﺬا اﻟﻜﻼس ,و ﺑﻌﺪﻫﺎ ﻳﻤﻜﻨﻚ إﺳﺘﺨﺪام ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﺘﻲ ورﺛﻬﺎ اﻟﻜﻼس اﻟﺠﺪﻳﺪ ﻣﻦ اﻟﻜﻼس
اﻟﺠﺎﻫﺰ.
ً
أﻳﻀﺎ ) extended class , derived classأو .( child class اﻟﻜﻼس اﻟﺬي ﻳﺮث ﻣﻦ ﻛﻼس آﺧﺮ ﻳﺴﻤﻰ Subclassو ﻳﺴﻤﻰ
https://harmash.com/java/java-inheritance/ 2/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ً
أﻳﻀﺎ ) base classأو .( parent class اﻟﻜﻼس اﻟﺬي ﻳﻮرث ﻣﺤﺘﻮﻳﺎﺗﻪ ﻟﻜﻼس آﺧﺮ ﻳﺴﻤﻰ Superclassو ﻳﺴﻤﻰ
HARMASH.COM ﻣﻘﺎﻻت اﻟﻤﻜﺘﺒﺔ ▾
ﻣﺜﺎل
اﻵن ﻟﻨﻔﺘﺮض أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﻛﻼس إﺳﻤﻪ Aﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺘﻐﻴﺮ إﺳﻤﻪ xو داﻟﺔ إﺳﻤﻬﺎ )(. printA
ﺑﻌﺪﻫﺎ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﻛﻼس ﺟﺪﻳﺪ ﻓﺎرغ إﺳﻤﻪ Bو ﻗﻠﻨﺎ أﻧﻪ ﻳﺮث ﻣﻦ اﻟﻜﻼس ً . A
إذا ﻫﺬا ﻳﻌﻨﻲ أن اﻟﻜﻼس Bأﺻﺒﺢ ﻳﻤﻠﻚ ﻧﺴﺨﺔ ﻣﻦ ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ
اﻟﻜﻼس . A
إﻧﺘﺒﻪ
ﻧﻀﻊ اﻟﻜﻠﻤﺔ extendsﺑﻌﺪ إﺳﻢ اﻟﻜﻼس ,ﺛﻢ ﻧﻀﻊ ﺑﻌﺪﻫﺎ إﺳﻢ اﻟﻜﻼس اﻟﺬي ﻧﺮﻳﺪ اﻟﻮراﺛﺔ ﻣﻨﻪ.
ﻣﺜﺎل
{ class A
}
}
إﻧﺘﺒﻪ :ﻓﻲ ﺣﺎل ﻛﻨﺖ ﺗﺤﺎول اﻟﻮراﺛﺔ ﻣﻦ ﻛﻼس ﻏﻴﺮ ﻣﻮﺟﻮد ﺳﻴﻈﻬﺮ ﻟﻚ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻲjava.lang.ExceptionInInitializerError :
https://harmash.com/java/java-inheritance/ 3/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ﻣﺜﺎل
HARMASH.COM ﻣﻘﺎﻻت اﻟﻤﻜﺘﺒﺔ ▾
اﻵن ﻟﻨﻔﺘﺮض أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﻛﻼس إﺳﻤﻪ Aﻳﺤﺘﻮي ﻋﻠﻰ ﻣﺘﻐﻴﺮ إﺳﻤﻪ xو داﻟﺔ إﺳﻤﻬﺎ )( . printAﺑﻌﺪﻫﺎ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﻛﻼس ﺟﺪﻳﺪ ﻓﺎرغ إﺳﻤﻪ Bو ﻗﻠﻨﺎ أﻧﻪ ﻳﺮث ﻣﻦ
اﻟﻜﻼس ً . A
إذا ﻫﺬا ﻳﻌﻨﻲ أن اﻟﻜﻼس Bأﺻﺒﺢ ﻳﻤﻠﻚ ﻧﺴﺨﺔ ﻣﻦ ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس . A
ﻣﺜﺎل
A.java
B.java
1. ﻫﻨﺎ ﻗﻠﻨﺎ أن اﻟﻜﻼس Bﻳﺮث اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس // A
2. { public class B extends A
3.
4. ً
إذا أي ﻛﺎﺋﻦ ﻣﻦ اﻟﻜﻼس Bﺳﻴﺤﺘﻮي اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس // A
5.
6. }
Main.java
اﻟﻜﻼﺳﻴﻦ.
َ ﻟﻠﺘﻤﻴﻴﺰ ﺑﻴﻦ اﻷﺷﻴﺎء )اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال( اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟـ Superclassو Subclassﻓﻲ ﺣﺎل ﻛﺎﻧﺖ اﻷﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻛﻼ
https://harmash.com/java/java-inheritance/ 4/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ً
إذا اﻟﻜﻠﻤﺔ superﺗﺴﺘﺨﺪم ﻹﺳﺘﺪﻋﺎء اﻷﺷﻴﺎء اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟـ . Superclass
HARMASH.COM ﻣﻘﺎﻻت اﻟﻤﻜﺘﺒﺔ ▾
ﻧﻀﻊ اﻟﻜﻠﻤﺔ , superﺑﻌﺪﻫﺎ ﻧﻘﻄﺔ ,ﺛﻢ ﻧﻀﻊ إﺳﻢ اﻟﻤﺘﻐﻴﺮ اﻟﺬي ﻧﺮﻳﺪ إﺳﺘﺪﻋﺎﺋﻪ ﻣﻦ اﻟـ . Superclass
super.variableName
ﺷﺎﻫﺪ اﻟﻤﺜﺎل «
ﻧﻀﻊ اﻟﻜﻠﻤﺔ , superﺑﻌﺪﻫﺎ ﻧﻘﻄﺔ ,ﺛﻢ ﻧﻀﻊ إﺳﻢ اﻟﺪاﻟﺔ اﻟﺘﻲ ﻧﺮﻳﺪ إﺳﺘﺪﻋﺎﺋﻬﺎ ﻣﻦ اﻟـ . Superclass
;)(super.methodName
ﺷﺎﻫﺪ اﻟﻤﺜﺎل «
إﻧﺘﺒﻪ
ً
ﻣﺒﺎﺷﺮة ,و ﻫﻜﺬا ﺳﻴﻔﻬﻢ اﻟﻤﺘﺮﺟﻢ أن ﻓﻲ ﺣﺎل ﻗﺎم اﻟـ Subclassﺑﺘﻌﺮﻳﻒ داﻟﺔ ﻛﺎﻧﺖ أﺻﻼً ﻣﻮﺟﻮدة ﻓﻲ اﻟـ Superclassﻳﺠﺐ ﻛﺘﺎﺑﺔ اﻟﻜﻠﻤﺔ @Overrideﻗﺒﻠﻬﺎ
ﻳﻤﻜﻦ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر اﻟـ Superclassﻣﻦ داﺧﻞ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر اﻟـ Subclassﻣﻦ ﺧﻼل اﻟﻜﻠﻤﺔ . super
) super( parameter List .ﻋﻨﺪ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﯾﺤﺘﻮي ﻋﻠﻰ ﺑﺎراﻣﯿﺘﺮات ,ﻋﻠﯿﻚ ﺗﻤﺮﯾﺮ ﻗﯿﻢ ﻟﮫ //
ﻓﻲ ﺣﺎل ﻛﺎن اﻟـ Superclassﻳﻤﻠﻚ ﻓﻘﻂ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻻ ﻳﺤﺘﻮي أي ﺑﺎراﻣﻴﺘﺮات )أي ﻣﺜﻞ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر إﻓﺘﺮاﺿﻲ( ,ﺳﻴﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﺎﺳﺘﺪﻋﺎﺋﻪ ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﻓﻲ اﻟـ Subclass
ﺷﺎﻫﺪ اﻷﻣﺜﻠﺔ «
و ﻓﻲ ﺣﺎل ﻛﺎن اﻟـ Superclassﻳﻤﻠﻚ أﻛﺜﺮ ﻣﻦ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ,ﺳﺘﻜﻮن ﻣﺠﺒﺮ ﻋﻠﻰ ﺗﻌﺮﻳﻒ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻓﻲ اﻟـ Subclassﻳﺴﺘﺪﻋﻲ أي ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻣﻦ اﻟﻜﻮﻧﺴﺘﺮﻛﺘﻮرات
ﺷﺎﻫﺪ اﻷﻣﺜﻠﺔ «
ﻓﻲ أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ ,ﻳﻮﺟﺪ 3أﺷﻜﺎل أﺳﺎﺳﻴﺔ ﻟﻠﻮراﺛﺔ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ.
https://harmash.com/java/java-inheritance/ 5/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ﺟﺎﻓﺎ ﻻ ﺗﺪﻋﻢ ﺗﻌﺪد اﻟﻮراﺛﺔ ﻛﻤﺎ ﻳﻮﺟﺪ ﻓﻲ ﺑﻌﺾ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻷﺧﺮى ,أي ﻻ ﻳﻤﻜﻦ ﻟﻠﻜﻼس اﻟﻮاﺣﺪ اﻟﻮراﺛﺔ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻣﻦ أﻛﺜﺮ ﻣﻦ ﻛﻼس.
ً
إذا اﻟﻜﻼس اﻟﻮاﺣﺪ ﻻ ﻳﻤﻜﻨﻪ أن ﻳﻔﻌﻞ extendsﻷﻛﺜﺮ ﻣﻦ ﻛﻼس ,ﺑﻤﻌﻨﻰ أن ﻛﻞ ﻛﻼس ﻳﻤﻜﻨﻪ وراﺛﺔ ﻛﻼس واﺣﺪ.
ﺟﺎﻓﺎ ﺗﺪﻋﻢ ﺗﻌﺪد اﻟﻮراﺛﺔ ﻣﻦ ﺧﻼل , interfaceأي ﻣﻦ أﺟﻞ اﻟﻮراﺛﺔ ﻣﻦ أﻛﺜﺮ ﻣﻦ ﻛﻼس ﻳﺠﺐ إﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ interfaceﺑﺪﻻً ﻣﻦ , classو اﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ
ً
داﺋﻤﺎ آﺧﺮ ﻛﻼس ﻳﺮث ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼﺳﺎت اﻷﻋﻠﻰ ﻣﻨﻪ. ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻮراﺛﺔ اﻟﻤﺘﺘﺎﻟﻴﺔ ) أو اﻟﻤﺘﻌﺪدة اﻟﻤﺴﺘﻮﻳﺎت (,
ﻟﻨﻔﺘﺮض أﻧﻨﺎ ﺳﻨﻘﻮم ﺑﺈﻧﺸﺎء ﺑﺮﻧﺎﻣﺞ ﻟﺤﻔﻆ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺤﻴﻮاﻧﺎت ,ﻳﺠﺐ ﻓﻲ اﻟﺒﺪاﻳﺔ ﺗﺠﻬﻴﺰ ﻛﻼس أﺳﺎﺳﻲ ﻳﻤﺜﻞ ﺟﻤﻴﻊ اﻟﺨﺼﺎﺋﺺ اﻟﻤﺸﺘﺮﻛﺔ ﺑﻴﻦ اﻟﺤﻴﻮاﻧﺎت ,ﺑﻌﺪﻫﺎ ﻳﺠﺐ ﺗﻘﺴﻴﻢ
اﻟﺤﻴﻮاﻧﺎت إﻟﻰ أرﺑﻊ ﻓﺌﺎت أﺳﺎﺳﻴﺔ )ﺛﺪﻳﻴﺎت ,زواﺣﻒ ,ﻃﻴﻮر ,ﺣﻴﻮاﻧﺎت ﻣﺎﺋﻴﺔ( .ﺑﻌﺪﻫﺎ ﻳﺠﺐ ﺗﻌﺮﻳﻒ ﻛﻞ ﺣﻴﻮان ﺿﻤﻦ اﻟﻔﺌﺔ اﻟﺘﻲ ﻳﻨﺘﻤﻲ ﻟﻬﺎ.
https://harmash.com/java/java-inheritance/ 6/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
ﻣﺜﺎل
ً
إذا ﻫﻨﺎ ﻳﻤﻜﻨﻨﺎ ﻗﺮاءة اﻟﻜﻮد ﻛﺎﻟﺘﺎﻟﻲ:
ً
أﻳﻀﺎ. Dogﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ Mammalsو ﻳﻌﺘﺒﺮ Animal
ً
أﻳﻀﺎ. Snackﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ Reptilesو ﻳﻌﺘﺒﺮ Animal
ً
أﻳﻀﺎ. Parrotﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ Birdsو ﻳﻌﺘﺒﺮ Animal
ً
أﻳﻀﺎ. Dolphinﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ Aquaticو ﻳﻌﺘﺒﺮ Animal
اﻟﻌﺎﻣﻞ instanceofﻳﺴﺘﺨﺪم ﻟﻤﻌﺮﻓﺔ إذا ﻛﺎن اﻟﻜﺎﺋﻦ ﻳﻨﺘﻤﻲ إﻟﻰ ﻛﻼس ﻣﻌﻴﻦ أم ﻻ.
ﻳﺮﺟﻊ trueﻓﻲ ﺣﺎل ﻛﺎن اﻟﻜﺎﺋﻦ ﻳﻨﺘﻤﻲ ﻟﻜﻼس ﻣﻌﻴﻦ ,ﻏﻴﺮ ذﻟﻚ ﻳﺮﺟﻊ . false
ﻣﺜﺎل
اﻵن ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺴﺎﺑﻖ و اﺳﺘﺨﺪام اﻟﻌﺎﻣﻞ instanceofﻟﻤﻌﺮﻓﺔ اﻟﻜﻼﺳﺎت اﻟﺘﻲ ﻳﻨﺘﻤﻲ إﻟﻴﻬﺎ اﻟﻜﺎﺋﻦ.
ﻣﻼﺣﻈﺔ :ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﺟﻤﻴﻊ اﻟﻜﻼﺳﺎت ﻛـ privateوراء ﺑﻌﻀﻬﻢ ﻓﻲ ﻧﻔﺲ ﻣﻠﻒ اﻟﺠﺎﻓﺎ ﻷن ﺟﺎﻓﺎ ﺗﺴﻤﺢ ﺑﺬﻟﻚ .ﻟﻜﻨﻨﺎ ﻻ ﻧﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام ﻫﺬا اﻷﺳﻠﻮب ﻓﻲ اﻟﺒﺮاﻣﺞ اﻟﻌﺎدﻳﺔ.
ﻣﺜﺎل
Main.java
https://harmash.com/java/java-inheritance/ 7/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
4. ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﻓﺌﺎت اﻟﺤﻴﻮاﻧﺎت //
HARMASH.COM
5. class Mammals } { extends Animal ﻣﻘﺎﻻت اﻟﻤﻜﺘﺒﺔ ▾
6. } { class Reptiles extends Animal
7. class Birds } { extends Animal
8. class Aquatic } { extends Animal
9.
10. ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ 4ﺣﻴﻮاﻧﺎت ﻣﻊ وﺿﻊ ﻛﻞ ﺣﻴﻮان ﺿﻤﻦ ﻓﺌﺘﻪ //
11. class Dog } { extends Mammals
12. class Snack } { extends Reptiles
13. class Parrot } { extends Birds
14. class Dolphin } { extends Aquatic
15.
16.
17. { public class Main
18.
19. { )public static void main(String[] args
20.
21. ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﻛﺎﺋﻦ ﻣﻦ اﻟﻜﻼس // Dog
22. ;)(Dog dog1 = new Dog
23.
24. ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺎﺧﺘﺒﺎر اﻟﻜﻼﺳﺎت اﻟﺘﻲ ﻳﻨﺘﻤﻲ إﻟﻴﻬﺎ اﻟﻜﺎﺋﻦ // dog1
25. ;)System.out.println( dog1 instanceof Dog
26. ;)System.out.println( dog1 instanceof Animal
27.
28. }
29.
30. }
true
true
ﻓﻲ ﺟﺎﻓﺎ ,ﻳﻮﺟﺪ ﻣﺌﺎت اﻟﻜﻼﺳﺎت اﻟﺠﺎﻫﺰة اﻟﺘﻲ ﺗﻢ ﺑﻨﺎءﻫﺎ ﺑﺸﻜﻞ ﻫﺮﻣﻲ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ.
ً
ﻓﻌﻠﻴﺎ ﻳﺄﺗﻲ ﻓﻲ رأس اﻟﻬﺮم و ﺑﺎﻟﺘﺎﻟﻲ ﻓﻮق اﻟﺠﻤﻴﻊ. ﺟﻤﻴﻊ اﻟﻜﻼﺳﺎت ﻓﻲ ﺟﺎﻓﺎ ﺗﺮث ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﻣﻦ اﻟﻜﻼس Objectﻷﻧﻪ
ً
إذا اﻟﻜﻼس Objectﻫﻮ أﻋﻠﻰ Superclassﻓﻲ ﺟﺎﻓﺎ.
و إذا ﻻﺣﻈﺖ ﻓﻲ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ أن أي ﻛﻼس ﺟﺪﻳﺪ ﻛﻨﺎ ﻧﺴﺘﺨﺪﻣﻪ ﻳﺤﺘﻮي ﻋﻠﻰ اﻟﺪوال )( toString() , hashcode() , equalsإﻟﺦ..
ﺳﺒﺐ وﺟﻮد ﻫﺬه اﻟﺪوال ﻓﻲ ﻛﻞ ﻛﻼس ﻛﻨﺎ ﻧﺴﺘﺨﺪﻣﻪ أﻧﻪ ورﺛﻮﻫﻢ ﻣﻦ اﻟﻜﻼس . Object
https://harmash.com/java/java-inheritance/ 8/9
23/04/2021 | Java inheritanceاﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ
اﻟﺪرس اﻟﺘﺎﻟﻲ «
HARMASH.COM ﻣﻘﺎﻻت اﻟﺴﺎﺑﻖ
▾ اﻟﺪرس
اﻟﻤﻜﺘﺒﺔ »
ّ
ﻣﻔﺼﻞ ,و ﻫﻮ اﻟﻤﻜﺎن ﻣﺒﺴﻂ و
ّ ﻫﺮﻣﺶ ﻫﻮ ﻣﻮﻗﻊ ﺗﻌﻠﻴﻤﻲ ﻣﺠﺎﻧﻲ ﻳﻬﺘﻢ ﺑﻌﻠﻮم اﻟﻜﻤﺒﻴﻮﺗﺮ و ﻳﻘﺪم إﻟﻴﻚ اﻟﻤﻌﺮﻓﺔ ﺑﺸﻜﻞ
ً
ﻣﺒﺪﻋﺎ ﻓﻲ اﻟﻌﺎﻟﻢ اﻟﺮﻗﻤﻲ. ً
ﻣﺤﺘﺮﻓﺎ و ً
ﻣﺒﺮﻣﺠﺎ اﻟﻤﻨﺎﺳﺐ ﻷي ﺷﺨﺺ ﻳﻄﻤﺢ ﺑﺄن ﻳﺼﺒﺢ
ﻓﻲ ﺣﺎل ﻛﻨﺖ ﺗﺮﻏﺐ ﺑﺘﻘﺪﻳﻢ دﻋﻢ ﻣﺎدي ﻟﻠﻤﻮﻗﻊ ,ﻳﻤﻜﻨﻚ اﻟﺘﺒﺮع ﻋﺒﺮ Paypalأو Patreonﺑﺎﻟﻤﺒﻠﻎ اﻟﺬي ﺗﺮﻳﺪه
ﻣﺤﺘﻮى اﻟﻤﻮﻗﻊ ﻳﺨﻀﻊ ﻟﺮﺧﺼﺔ ) (CC BY-NC-ND 4.0اﻟﺘﻲ ﻻ ﺗﺴﻤﺢ ﺑﺎﺳﺘﺨﺪام اﻟﺸﺮوﺣﺎت ﻷﻏﺮاض ﺗﺠﺎرﻳﺔ ,إﺟﺮاء ﺗﻌﺪﻳﻞ
ﻋﻠﻴﻬﺎ و ﻧﺸﺮﻫﺎ ﻓﻲ ﻣﻮﻗﻊ آﺧﺮ ,وﺿﻊ اﻟﺸﺮوﺣﺎت ﻓﻲ ﺗﻄﺒﻴﻖ أو ﻓﻲ ﻛﺘﺎب إﻻ ﻓﻲ ﺣﺎل أﺧﺬ ﻣﻮاﻓﻘﺔ ﺻﺮﻳﺤﺔ ﻣﻦ إدارة اﻟﻤﻮﻗﻊ.
© 2020 Harmash. All Content is licensed under CC BY-NC-ND 4.0 unless mentioned otherwise.
https://harmash.com/java/java-inheritance/ 9/9