You are on page 1of 9

23/04/2021 ‫ | اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬Java inheritance

HARMASH.COM ‫ﻣﻘﺎﻻت‬ ▾ ‫اﻟﻤﻜﺘﺒﺔ‬

‫أﺳﺎﺳﻴﺎت اﻟﻠﻐﺔ‬

‫ ﻧﻈﺮة ﻋﺎﻣﺔ‬- Java

‫ ﺗﻬﻴﺌﺔ ﺑﻴﺌﺔ اﻟﺘﻄﻮﻳﺮ‬- Java

‫ أﺳﺎﺳﻴﺎت ﻟﻐﺔ ﺟﺎﻓﺎ‬- Java

‫ أﺳﻠﻮب اﻟﻜﺘﺎﺑﺔ‬- Java

‫ أول ﺑﺮﻧﺎﻣﺞ ﻟﻚ‬- Java

‫ أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‬- Java

‫ اﻟﻤﺘﻐﻴﺮات‬- Java

‫ اﻟﺪوال‬- Java

‫ اﻟﻌﻮاﻣﻞ‬- Java

‫ اﻟﺤﻠﻘﺎت‬- Java

‫ اﻟﺸﺮوط‬- Java

‫ اﻷﻋﺪاد‬- Java

‫ اﻷﺣﺮف‬- Java

‫ اﻟﻨﺼﻮص‬- Java

‫ اﻟﻤﺼﻔﻮﻓﺎت‬- Java

‫ اﻟﺘﺎرﻳﺦ و اﻟﻮﻗﺖ‬- Java

‫ اﻟﺘﻌﺎﺑﻴﺮ اﻟﻨﻤﻄﻴﺔ‬- Java

‫ اﻹﺳﺘﺜﻨﺎءات‬- Java

‫اﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﻴﺔ‬

Class & Object - Java

Modifiers - Java

Encapsulation - Java

Inheritance - Java

Overriding - Java

Overloading - Java

Type Casting - Java

Abstraction - Java

Interfaces - Java

Polymorphism - Java

Nested Classes - Java

Enum - Java

‫ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ‬

‫ إدﺧﺎل اﻟﺒﻴﺎﻧﺎت‬- Java

https://harmash.com/java/java-inheritance/ 1/9
‫‪23/04/2021‬‬ ‫‪ | Java inheritance‬اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫ﻣﻘﺎﻻت‬ ‫اﻟﻤﻠﻔﺎت‬
‫ﻣﻊ ▾‬ ‫‪ - Java‬اﻟﺘﻌﺎﻣﻞ‬
‫اﻟﻤﻜﺘﺒﺔ‬
‫‪HARMASH.COM‬‬
‫‪ - Java‬اﻟﻤﺰاﻣﻨﺔ‬

‫‪Data Structure - Java‬‬

‫‪Collection - Java‬‬

‫‪Generics - Java‬‬

‫‪ - Java‬اﻟﺸﺒﻜﺎت‬

‫‪ - Java‬ﺗﻌﺪد اﻟﻤﻬﺎم‬

‫‪ - Java‬ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬

‫‪Lambda Expressions - Java‬‬

‫‪ - Java‬ﻣﺎ ﻫﻲ ﺧﻄﻮﺗﻲ اﻟﺘﺎﻟﻴﺔ ؟‬

‫ﺗﻌﻠﻢ اﻟﻤﺰﻳﺪ‬

‫‪ - Java‬ﻣﻘﺎﻻت ﺟﺎﻓﺎ‬

‫‪ - Java‬اﻟﺨﻮارزﻣﻴﺎت و ﻫﻴﺎﻛﻞ اﻟﺒﻴﺎﻧﺎت‬

‫«‬ ‫اﻟﺪرس اﻟﺘﺎﻟﻲ‬ ‫اﻟﺪرس اﻟﺴﺎﺑﻖ‬ ‫»‬

‫إﻋﻼن‬

‫‪Java‬‬
‫اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ ﻣﻔﻬﻮم اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ اﻟﻜﻠﻤﺔ ‪ extends‬ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ اﻟﻜﻠﻤﺔ ‪ super‬ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ أﺷﻜﺎل اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ ﻋﻼﻗﺔ اﻟﻜﺎﺋﻨﺎت ﻣﻊ ﺑﻌﻀﻬﺎ ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ اﻟﻌﺎﻣﻞ ‪ instanceof‬ﻓﻲ ﺟﺎﻓﺎ‬

‫‹ اﻟﻜﻼس ‪ Object‬ﻓﻲ ﺟﺎﻓﺎ‬

‫ﻣﻔﻬﻮم اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫وراﺛﺔ‪ :‬ﺗﻌﻨﻲ ‪ Inheritance‬ﻓﻲ اﻟﻠﻐﺔ اﻹﻧﺠﻠﻴﺰﻳﺔ‪ .‬و ﻟﻘﺪ ذﻛﺮت ﻫﺬه اﻟﻜﻠﻤﺔ ﻋﺪة ﻣﺮات ﻓﻲ دروس ﺳﺎﺑﻘﺔ‪.‬‬

‫ﻓﻲ ﺟﺎﻓﺎ‪ ,‬اﻟﻜﻼس ﻳﻤﻜﻨﻪ أن ﻳﺮث ﻣﻦ ﻛﻼس آﺧﺮ‪ ,‬و ﺑﺎﻟﺘﺎﻟﻲ ﻳﺤﺼﻞ ﻋﻠﻰ اﻟﺪوال و اﻟﻤﺘﻐﻴﺮات اﻟﻤﻮﺟﻮدة ﻓﻲ ﻫﺬا اﻟﻜﻼس‪.‬‬

‫ً‬
‫ﺟﺪا‪ .‬ﻓﻤﺜﻼً إذا ﻛﻨﺖ ﺗﺮﻳﺪ إﻧﺸﺎء ﻛﻼس ﺟﺪﻳﺪ و ﻻﺣﻈﺖ أﻧﻪ ﻳﻮﺟﺪ ﻛﻼس ﺟﺎﻫﺰ ﻳﺤﺘﻮي ﻋﻠﻰ ﻛﻮدات ﻗﺪ ﺗﻔﻴﺪك ﻳﻤﻜﻨﻚ اﺳﺘﻐﻼﻟﻬﺎ ﺑﺪل‬ ‫ﻓﻜﺮة اﻟﻮراﺛﺔ ﺑﺴﻴﻄﺔ‪ ,‬ﻟﻜﻦ ﻓﺎﺋﺪﺗﻬﺎ ﻗﻮﻳﺔ‬

‫ﻛﺘﺎﺑﺘﻬﺎ ﻣﻦ اﻟﺼﻔﺮ‪ ,‬أي ﻳﻤﻜﻨﻚ ﺟﻌﻞ اﻟﻜﻼس اﻟﺬي ﻗﻤﺖ ﺑﺘﻌﺮﻳﻔﻪ ﻳﺮث ﻫﺬا اﻟﻜﻼس‪ ,‬و ﺑﻌﺪﻫﺎ ﻳﻤﻜﻨﻚ إﺳﺘﺨﺪام ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﺘﻲ ورﺛﻬﺎ اﻟﻜﻼس اﻟﺠﺪﻳﺪ ﻣﻦ اﻟﻜﻼس‬

‫اﻟﺠﺎﻫﺰ‪.‬‬

‫ﻣﻔﻬﻮم ‪ Superclass‬و ‪Subclass‬‬

‫ً‬
‫أﻳﻀﺎ ) ‪ 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‬‬

‫إﻧﺘﺒﻪ‬

‫اﻟـ ‪ Subclass‬ﻳﺮث ﻛﻞ ﺷﻲء ﻣﻮﺟﻮد ﻓﻲ اﻟـ ‪ Superclass‬ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﻣﺎ ﻋﺪا اﻟـﻜﻮﻧﺴﺘﺮﻛﺘﻮر‪.‬‬


‫ً‬
‫ﻻﺣﻘﺎ ﻓﻲ ﻫﺬا اﻟﺪرس‪.‬‬ ‫ﻣﻊ اﻟﻌﻠﻢ أﻧﻪ ﻳﻤﻜﻦ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر اﻟـ ‪ Superclass‬ﻣﻦ اﻟـ ‪ Subclass‬ﺑﻮاﺳﻄﺔ اﻟﻜﻠﻤﺔ ‪ super‬اﻟﺘﻲ ﺳﻨﺸﺮﺣﻬﺎ‬

‫اﻟﻜﻠﻤﺔ ‪ extends‬ﻓﻲ ﺟﺎﻓﺎ‬

‫اﻟﻜﻠﻤﺔ ‪ extends‬ﺗﺴﺘﺨﺪم ﻟﺠﻌﻞ اﻟﻜﻼس ﻳﺮث ﻣﻦ ﻛﻼس آﺧﺮ‪.‬‬

‫‪extends‬‬ ‫ﻣﻜﺎن وﺿﻊ اﻟﻜﻠﻤﺔ‬

‫ﻧﻀﻊ اﻟﻜﻠﻤﺔ ‪ extends‬ﺑﻌﺪ إﺳﻢ اﻟﻜﻼس‪ ,‬ﺛﻢ ﻧﻀﻊ ﺑﻌﺪﻫﺎ إﺳﻢ اﻟﻜﻼس اﻟﺬي ﻧﺮﻳﺪ اﻟﻮراﺛﺔ ﻣﻨﻪ‪.‬‬

‫اﻟﻜﻮد اﻟﺘﺎﻟﻲ ﻳﻌﻨﻲ أن اﻟﻜﻼس ‪ B‬ﻳﺮث ﻣﻦ اﻟﻜﻼس ‪. A‬‬

‫ﻣﺜﺎل‬

‫{ ‪class A‬‬

‫}‬

‫{ ‪class B extends 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‬‬

‫ﺑﻌﺪ إﻧﺸﺎء ﻫﺬا اﻟﻜﻼس‪ ,‬ﺳﻨﻘﻮم ﺑﺈﻧﺸﺎء اﻟﻜﻼس ‪ Main‬ﻟﺘﺠﺮﺑﺘﻪ‪.‬‬

‫ﻣﺜﺎل‬

‫‪A.java‬‬

‫‪1.‬‬ ‫{ ‪public class A‬‬


‫‪2.‬‬
‫‪3.‬‬ ‫;‪public int x‬‬
‫‪4.‬‬
‫‪5.‬‬ ‫{ )(‪public void printA‬‬
‫‪6.‬‬ ‫;)"‪System.out.println("I am from class A‬‬
‫‪7.‬‬ ‫}‬
‫‪8.‬‬
‫‪9.‬‬ ‫}‬

‫‪B.java‬‬

‫‪1.‬‬ ‫ﻫﻨﺎ ﻗﻠﻨﺎ أن اﻟﻜﻼس ‪ B‬ﻳﺮث اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس ‪// A‬‬
‫‪2.‬‬ ‫{ ‪public class B extends A‬‬
‫‪3.‬‬
‫‪4.‬‬ ‫ً‬
‫إذا أي ﻛﺎﺋﻦ ﻣﻦ اﻟﻜﻼس ‪ B‬ﺳﻴﺤﺘﻮي اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس ‪// A‬‬
‫‪5.‬‬
‫‪6.‬‬ ‫}‬

‫‪Main.java‬‬

‫‪1.‬‬ ‫{ ‪public class Main‬‬


‫‪2.‬‬
‫‪3.‬‬ ‫{ )‪public static void main(String[] args‬‬
‫‪4.‬‬
‫‪5.‬‬ ‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺈﻧﺸﺎء ﻛﺎﺋﻦ ﻣﻦ اﻟﻜﻼس ‪ B‬ﻟﻨﺘﺄﻛﺪ إذا ﻛﺎن ﻳﺤﺘﻮي ﻋﻠﻰ اﻷﺷﻴﺎء اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼس ‪ A‬أم ﻻ ‪//‬‬
‫‪6.‬‬ ‫;)(‪B b = new B‬‬
‫‪7.‬‬
‫‪8.‬‬ ‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺎﺳﺘﺪﻋﺎء اﻟﺪاﻟﺔ )(‪ printA‬اﻟﺘﻲ ورﺛﻬﺎ اﻟﻜﻼس ‪ B‬ﻣﻦ اﻟﻜﻼس ‪// A‬‬
‫‪9.‬‬ ‫;)(‪b.printA‬‬
‫‪10.‬‬
‫‪11.‬‬ ‫ً‬
‫أﻳﻀﺎ‪ ,‬ﻳﻤﻜﻨﻨﺎ إﻋﻄﺎﺋﻪ ﻗﻴﻤﺔ و ﻋﺮض ﻗﻴﻤﺘﻪ ‪//‬‬ ‫و ﺑﻤﺎ أن اﻟﻜﺎﺋﻦ ‪ b‬ﻳﻤﻠﻚ ﻣﺘﻐﻴﺮ إﺳﻤﻪ ‪x‬‬
‫‪12.‬‬ ‫;‪b.x = 123‬‬
‫‪13.‬‬ ‫;)‪System.out.println("x: " +b.x‬‬
‫‪14.‬‬
‫‪15.‬‬ ‫}‬
‫‪16.‬‬
‫‪17.‬‬ ‫}‬

‫• ﺳﻨﺤﺼﻞ ﻋﻠﻰ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ ﻋﻨﺪ اﻟﺘﺸﻐﻴﻞ‪.‬‬

‫‪I am from class A‬‬


‫‪x: 123‬‬

‫اﻟﻜﻠﻤﺔ ‪ super‬ﻓﻲ ﺟﺎﻓﺎ‬

‫اﻟﻜﻠﻤﺔ ‪ super‬ﺗﺴﺘﺨﺪم ﻟﻸﻫﺪاف اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫اﻟﻜﻼﺳﻴﻦ‪.‬‬
‫َ‬ ‫ﻟﻠﺘﻤﻴﻴﺰ ﺑﻴﻦ اﻷﺷﻴﺎء )اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال( اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟـ ‪ Superclass‬و ‪ Subclass‬ﻓﻲ ﺣﺎل ﻛﺎﻧﺖ اﻷﺳﻤﺎء ﻣﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻛﻼ‬

‫ﻹﺳﺘﺪﻋﺎء اﻟـﻜﻮﻧﺴﺘﺮﻛﺘﻮر اﻟﻤﻮﺟﻮد ﻓﻲ اﻟـ ‪. Superclass‬‬

‫‪https://harmash.com/java/java-inheritance/‬‬ ‫‪4/9‬‬
‫‪23/04/2021‬‬ ‫‪ | Java inheritance‬اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬
‫ً‬
‫إذا اﻟﻜﻠﻤﺔ ‪ super‬ﺗﺴﺘﺨﺪم ﻹﺳﺘﺪﻋﺎء اﻷﺷﻴﺎء اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟـ ‪. Superclass‬‬
‫‪HARMASH.COM‬‬ ‫ﻣﻘﺎﻻت‬ ‫اﻟﻤﻜﺘﺒﺔ ▾‬

‫ﻃﺮﻳﻘﺔ اﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ ‪ super‬ﻹﺳﺘﺪﻋﺎء ﻣﺘﻐﻴﺮ ﻣﻦ اﻟـ ‪Superclass‬‬

‫ﻧﻀﻊ اﻟﻜﻠﻤﺔ ‪ , super‬ﺑﻌﺪﻫﺎ ﻧﻘﻄﺔ‪ ,‬ﺛﻢ ﻧﻀﻊ إﺳﻢ اﻟﻤﺘﻐﻴﺮ اﻟﺬي ﻧﺮﻳﺪ إﺳﺘﺪﻋﺎﺋﻪ ﻣﻦ اﻟـ ‪. Superclass‬‬

‫‪super.variableName‬‬

‫ﺷﺎﻫﺪ اﻟﻤﺜﺎل «‬

‫ﻃﺮﻳﻘﺔ اﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ ‪ super‬ﻹﺳﺘﺪﻋﺎء داﻟﺔ ﻣﻦ اﻟـ ‪Superclass‬‬

‫ﻧﻀﻊ اﻟﻜﻠﻤﺔ ‪ , super‬ﺑﻌﺪﻫﺎ ﻧﻘﻄﺔ‪ ,‬ﺛﻢ ﻧﻀﻊ إﺳﻢ اﻟﺪاﻟﺔ اﻟﺘﻲ ﻧﺮﻳﺪ إﺳﺘﺪﻋﺎﺋﻬﺎ ﻣﻦ اﻟـ ‪. Superclass‬‬

‫;)(‪super.methodName‬‬

‫ﺷﺎﻫﺪ اﻟﻤﺜﺎل «‬

‫إﻧﺘﺒﻪ‬

‫ً‬
‫ﻣﺒﺎﺷﺮة‪ ,‬و ﻫﻜﺬا ﺳﻴﻔﻬﻢ اﻟﻤﺘﺮﺟﻢ أن‬ ‫ﻓﻲ ﺣﺎل ﻗﺎم اﻟـ ‪ Subclass‬ﺑﺘﻌﺮﻳﻒ داﻟﺔ ﻛﺎﻧﺖ أﺻﻼً ﻣﻮﺟﻮدة ﻓﻲ اﻟـ ‪ Superclass‬ﻳﺠﺐ ﻛﺘﺎﺑﺔ اﻟﻜﻠﻤﺔ ‪ @Override‬ﻗﺒﻠﻬﺎ‬

‫اﻟـ ‪ Subclass‬ﻗﺎم ﺑﺘﻌﺮﻳﻒ اﻟﺪاﻟﺔ اﻟﺘﻲ ورﺛﻬﺎ ﻣﻦ اﻟـ ‪ Superclass‬ﻣﻦ ﺟﺪﻳﺪ‪.‬‬

‫ﻃﺮﻳﻘﺔ اﺳﺘﺨﺪاﻣﻬﺎ ﻋﻨﺪ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر‬

‫ﻳﻤﻜﻦ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر اﻟـ ‪ Superclass‬ﻣﻦ داﺧﻞ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر اﻟـ ‪ Subclass‬ﻣﻦ ﺧﻼل اﻟﻜﻠﻤﺔ ‪. super‬‬

‫)(‪super‬‬ ‫ﻋﻨﺪ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻓﺎرغ ﻧﻜﺘﺐ ھﻜﺬا ﻓﻘﻂ ‪//‬‬

‫أو ھﻜﺬا ‪//‬‬

‫) ‪super( parameter List‬‬ ‫‪.‬ﻋﻨﺪ اﺳﺘﺪﻋﺎء ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﯾﺤﺘﻮي ﻋﻠﻰ ﺑﺎراﻣﯿﺘﺮات‪ ,‬ﻋﻠﯿﻚ ﺗﻤﺮﯾﺮ ﻗﯿﻢ ﻟﮫ ‪//‬‬

‫ﻓﻲ ﺣﺎل ﻛﺎن اﻟـ ‪ Superclass‬ﻳﻤﻠﻚ ﻓﻘﻂ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻻ ﻳﺤﺘﻮي أي ﺑﺎراﻣﻴﺘﺮات )أي ﻣﺜﻞ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر إﻓﺘﺮاﺿﻲ(‪ ,‬ﺳﻴﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﺎﺳﺘﺪﻋﺎﺋﻪ ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﻓﻲ اﻟـ ‪Subclass‬‬

‫ﺣﺘﻰ ﻟﻮ ﻟﻢ ﺗﻘﻢ ﺑﺎﺳﺘﺪﻋﺎﺋﻪ ﺑﻨﻔﺴﻚ‪.‬‬

‫ﺷﺎﻫﺪ اﻷﻣﺜﻠﺔ «‬

‫و ﻓﻲ ﺣﺎل ﻛﺎن اﻟـ ‪ Superclass‬ﻳﻤﻠﻚ أﻛﺜﺮ ﻣﻦ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر‪ ,‬ﺳﺘﻜﻮن ﻣﺠﺒﺮ ﻋﻠﻰ ﺗﻌﺮﻳﻒ ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻓﻲ اﻟـ ‪ Subclass‬ﻳﺴﺘﺪﻋﻲ أي ﻛﻮﻧﺴﺘﺮﻛﺘﻮر ﻣﻦ اﻟﻜﻮﻧﺴﺘﺮﻛﺘﻮرات‬

‫اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟـ ‪. Superclass‬‬

‫ﺷﺎﻫﺪ اﻷﻣﺜﻠﺔ «‬

‫أﺷﻜﺎل اﻟﻮراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫ﻓﻲ أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ‪ ,‬ﻳﻮﺟﺪ ‪ 3‬أﺷﻜﺎل أﺳﺎﺳﻴﺔ ﻟﻠﻮراﺛﺔ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ‪.‬‬

‫‪https://harmash.com/java/java-inheritance/‬‬ ‫‪5/9‬‬
‫‪23/04/2021‬‬ ‫‪ | Java inheritance‬اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫‪HARMASH.COM‬‬ ‫ﻣﻘﺎﻻت‬ ‫اﻟﻤﻜﺘﺒﺔ ▾‬

‫ﺟﺎﻓﺎ ﻻ ﺗﺪﻋﻢ ﺗﻌﺪد اﻟﻮراﺛﺔ ﻛﻤﺎ ﻳﻮﺟﺪ ﻓﻲ ﺑﻌﺾ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻷﺧﺮى‪ ,‬أي ﻻ ﻳﻤﻜﻦ ﻟﻠﻜﻼس اﻟﻮاﺣﺪ اﻟﻮراﺛﺔ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻣﻦ أﻛﺜﺮ ﻣﻦ ﻛﻼس‪.‬‬
‫ً‬
‫إذا اﻟﻜﻼس اﻟﻮاﺣﺪ ﻻ ﻳﻤﻜﻨﻪ أن ﻳﻔﻌﻞ ‪ extends‬ﻷﻛﺜﺮ ﻣﻦ ﻛﻼس ‪ ,‬ﺑﻤﻌﻨﻰ أن ﻛﻞ ﻛﻼس ﻳﻤﻜﻨﻪ وراﺛﺔ ﻛﻼس واﺣﺪ‪.‬‬

‫ﺟﺎﻓﺎ ﺗﺪﻋﻢ ﺗﻌﺪد اﻟﻮراﺛﺔ ﻣﻦ ﺧﻼل ‪ , interface‬أي ﻣﻦ أﺟﻞ اﻟﻮراﺛﺔ ﻣﻦ أﻛﺜﺮ ﻣﻦ ﻛﻼس ﻳﺠﺐ إﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ ‪ interface‬ﺑﺪﻻً ﻣﻦ ‪ , class‬و اﺳﺘﺨﺪام اﻟﻜﻠﻤﺔ‬

‫‪ implements‬ﺑﺪﻻً ﻣﻦ ‪ extends‬ﺿﻤﻦ ﺷﺮوط ﻣﻌﻴﻨﺔ‪ .‬ﺳﺘﺘﻌﻠﻢ ﺗﻌﺪد اﻟﻮراﺛﺔ ﻓﻲ درس ﻻﺣﻖ‪.‬‬

‫ً‬
‫داﺋﻤﺎ آﺧﺮ ﻛﻼس ﻳﺮث ﺟﻤﻴﻊ اﻟﻤﺘﻐﻴﺮات و اﻟﺪوال اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻜﻼﺳﺎت اﻷﻋﻠﻰ ﻣﻨﻪ‪.‬‬ ‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻮراﺛﺔ اﻟﻤﺘﺘﺎﻟﻴﺔ ) أو اﻟﻤﺘﻌﺪدة اﻟﻤﺴﺘﻮﻳﺎت (‪,‬‬

‫ﻋﻼﻗﺔ اﻟﻜﺎﺋﻨﺎت ﻣﻊ ﺑﻌﻀﻬﺎ ﻓﻲ ﺟﺎﻓﺎ‬

‫ﻟﻨﻔﺘﺮض أﻧﻨﺎ ﺳﻨﻘﻮم ﺑﺈﻧﺸﺎء ﺑﺮﻧﺎﻣﺞ ﻟﺤﻔﻆ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺤﻴﻮاﻧﺎت‪ ,‬ﻳﺠﺐ ﻓﻲ اﻟﺒﺪاﻳﺔ ﺗﺠﻬﻴﺰ ﻛﻼس أﺳﺎﺳﻲ ﻳﻤﺜﻞ ﺟﻤﻴﻊ اﻟﺨﺼﺎﺋﺺ اﻟﻤﺸﺘﺮﻛﺔ ﺑﻴﻦ اﻟﺤﻴﻮاﻧﺎت‪ ,‬ﺑﻌﺪﻫﺎ ﻳﺠﺐ ﺗﻘﺴﻴﻢ‬

‫اﻟﺤﻴﻮاﻧﺎت إﻟﻰ أرﺑﻊ ﻓﺌﺎت أﺳﺎﺳﻴﺔ )ﺛﺪﻳﻴﺎت‪ ,‬زواﺣﻒ‪ ,‬ﻃﻴﻮر‪ ,‬ﺣﻴﻮاﻧﺎت ﻣﺎﺋﻴﺔ(‪ .‬ﺑﻌﺪﻫﺎ ﻳﺠﺐ ﺗﻌﺮﻳﻒ ﻛﻞ ﺣﻴﻮان ﺿﻤﻦ اﻟﻔﺌﺔ اﻟﺘﻲ ﻳﻨﺘﻤﻲ ﻟﻬﺎ‪.‬‬

‫‪https://harmash.com/java/java-inheritance/‬‬ ‫‪6/9‬‬
‫‪23/04/2021‬‬ ‫‪ | Java inheritance‬اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫‪HARMASH.COM‬‬ ‫ﻣﻘﺎﻻت‬ ‫اﻟﻤﻜﺘﺒﺔ ▾‬

‫اﻵن ﺳﻨﻘﻮم ﺑﺘﻤﺜﻴﻞ اﻟﻤﻄﻠﻮب ﻓﻲ اﻟﺼﻮرة ﺑﻠﻐﺔ ﺟﺎﻓﺎ‪.‬‬

‫ﻣﺜﺎل‬

‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ اﻟﻜﻼس اﻷﺳﺎﺳﻲ ﻟﺠﻤﻴﻊ اﻟﺤﻴﻮاﻧﺎت ‪//‬‬


‫} { ‪class Animal‬‬

‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﻓﺌﺎت اﻟﺤﻴﻮاﻧﺎت ‪//‬‬


‫‪class Mammals‬‬ ‫} { ‪extends Animal‬‬
‫} { ‪class Reptiles extends Animal‬‬
‫‪class Birds‬‬ ‫} { ‪extends Animal‬‬
‫‪class Aquatic‬‬ ‫} { ‪extends Animal‬‬

‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ‪ 4‬ﺣﻴﻮاﻧﺎت ﻣﻊ وﺿﻊ ﻛﻞ ﺣﻴﻮان ﺿﻤﻦ ﻓﺌﺘﻪ ‪//‬‬


‫‪class Dog‬‬ ‫} { ‪extends Mammals‬‬
‫‪class Snack‬‬ ‫} { ‪extends Reptiles‬‬
‫‪class Parrot‬‬ ‫} { ‪extends Birds‬‬
‫‪class Dolphin‬‬ ‫} { ‪extends Aquatic‬‬

‫ً‬
‫إذا ﻫﻨﺎ ﻳﻤﻜﻨﻨﺎ ﻗﺮاءة اﻟﻜﻮد ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ً‬
‫أﻳﻀﺎ‪.‬‬ ‫‪ Dog‬ﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ ‪ Mammals‬و ﻳﻌﺘﺒﺮ ‪Animal‬‬

‫ً‬
‫أﻳﻀﺎ‪.‬‬ ‫‪ Snack‬ﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ ‪ Reptiles‬و ﻳﻌﺘﺒﺮ ‪Animal‬‬

‫ً‬
‫أﻳﻀﺎ‪.‬‬ ‫‪ Parrot‬ﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ ‪ Birds‬و ﻳﻌﺘﺒﺮ ‪Animal‬‬

‫ً‬
‫أﻳﻀﺎ‪.‬‬ ‫‪ Dolphin‬ﻳﻌﺘﺒﺮ ﻣﻦ اﻟـ ‪ Aquatic‬و ﻳﻌﺘﺒﺮ ‪Animal‬‬

‫اﻟﻌﺎﻣﻞ ‪ instanceof‬ﻓﻲ ﺟﺎﻓﺎ‬

‫اﻟﻌﺎﻣﻞ ‪ instanceof‬ﻳﺴﺘﺨﺪم ﻟﻤﻌﺮﻓﺔ إذا ﻛﺎن اﻟﻜﺎﺋﻦ ﻳﻨﺘﻤﻲ إﻟﻰ ﻛﻼس ﻣﻌﻴﻦ أم ﻻ‪.‬‬

‫ﻳﺮﺟﻊ ‪ true‬ﻓﻲ ﺣﺎل ﻛﺎن اﻟﻜﺎﺋﻦ ﻳﻨﺘﻤﻲ ﻟﻜﻼس ﻣﻌﻴﻦ‪ ,‬ﻏﻴﺮ ذﻟﻚ ﻳﺮﺟﻊ ‪. false‬‬

‫ﻣﺜﺎل‬

‫اﻵن ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺴﺎﺑﻖ و اﺳﺘﺨﺪام اﻟﻌﺎﻣﻞ ‪ instanceof‬ﻟﻤﻌﺮﻓﺔ اﻟﻜﻼﺳﺎت اﻟﺘﻲ ﻳﻨﺘﻤﻲ إﻟﻴﻬﺎ اﻟﻜﺎﺋﻦ‪.‬‬

‫ﻣﻼﺣﻈﺔ‪ :‬ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﺟﻤﻴﻊ اﻟﻜﻼﺳﺎت ﻛـ ‪ private‬وراء ﺑﻌﻀﻬﻢ ﻓﻲ ﻧﻔﺲ ﻣﻠﻒ اﻟﺠﺎﻓﺎ ﻷن ﺟﺎﻓﺎ ﺗﺴﻤﺢ ﺑﺬﻟﻚ‪ .‬ﻟﻜﻨﻨﺎ ﻻ ﻧﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام ﻫﺬا اﻷﺳﻠﻮب ﻓﻲ اﻟﺒﺮاﻣﺞ اﻟﻌﺎدﻳﺔ‪.‬‬

‫ﻛﻤﺎ أﻧﻨﺎ ﺳﻨﺴﺘﺨﺪم اﻟﻌﺎﻣﻞ ‪ instanceof‬ﻓﻲ دروس ﻻﺣﻘﺔ‪.‬‬

‫ﻣﺜﺎل‬

‫‪Main.java‬‬

‫‪1.‬‬ ‫ﻫﻨﺎ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ اﻟﻜﻼس اﻷﺳﺎﺳﻲ ﻟﺠﻤﻴﻊ اﻟﺤﻴﻮاﻧﺎت ‪//‬‬


‫‪2.‬‬ ‫} { ‪class Animal‬‬
‫‪3.‬‬

‫‪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‬ﻷﻧﻪ‬
‫ً‬
‫إذا اﻟﻜﻼس ‪ Object‬ﻫﻮ أﻋﻠﻰ ‪ Superclass‬ﻓﻲ ﺟﺎﻓﺎ‪.‬‬

‫و إذا ﻻﺣﻈﺖ ﻓﻲ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ أن أي ﻛﻼس ﺟﺪﻳﺪ ﻛﻨﺎ ﻧﺴﺘﺨﺪﻣﻪ ﻳﺤﺘﻮي ﻋﻠﻰ اﻟﺪوال )(‪ toString() , hashcode() , equals‬إﻟﺦ‪..‬‬

‫ﺳﺒﺐ وﺟﻮد ﻫﺬه اﻟﺪوال ﻓﻲ ﻛﻞ ﻛﻼس ﻛﻨﺎ ﻧﺴﺘﺨﺪﻣﻪ أﻧﻪ ورﺛﻮﻫﻢ ﻣﻦ اﻟﻜﻼس ‪. Object‬‬

‫‪https://harmash.com/java/java-inheritance/‬‬ ‫‪8/9‬‬
‫‪23/04/2021‬‬ ‫‪ | Java inheritance‬اﻟوراﺛﺔ ﻓﻲ ﺟﺎﻓﺎ‬

‫اﻟﺪرس اﻟﺘﺎﻟﻲ «‬
‫‪HARMASH.COM‬‬ ‫ﻣﻘﺎﻻت‬ ‫اﻟﺴﺎﺑﻖ‬
‫▾‬ ‫اﻟﺪرس‬
‫اﻟﻤﻜﺘﺒﺔ‬ ‫»‬

‫ّ‬
‫ﻣﻔﺼﻞ‪ ,‬و ﻫﻮ اﻟﻤﻜﺎن‬ ‫ﻣﺒﺴﻂ و‬
‫ّ‬ ‫ﻫﺮﻣﺶ ﻫﻮ ﻣﻮﻗﻊ ﺗﻌﻠﻴﻤﻲ ﻣﺠﺎﻧﻲ ﻳﻬﺘﻢ ﺑﻌﻠﻮم اﻟﻜﻤﺒﻴﻮﺗﺮ و ﻳﻘﺪم إﻟﻴﻚ اﻟﻤﻌﺮﻓﺔ ﺑﺸﻜﻞ‬

‫ً‬
‫ﻣﺒﺪﻋﺎ ﻓﻲ اﻟﻌﺎﻟﻢ اﻟﺮﻗﻤﻲ‪.‬‬ ‫ً‬
‫ﻣﺤﺘﺮﻓﺎ و‬ ‫ً‬
‫ﻣﺒﺮﻣﺠﺎ‬ ‫اﻟﻤﻨﺎﺳﺐ ﻷي ﺷﺨﺺ ﻳﻄﻤﺢ ﺑﺄن ﻳﺼﺒﺢ‬

‫●‪  ‬اﻷﺳﺌﻠﺔ اﻟﺸﺎﺋﻌﺔ ‪  ●  ‬أﻋﻠﻦ ﻓﻲ اﻟﻤﻮﻗﻊ ‪ ‬‬

‫ﺗﻢ ﺗﻄﻮﻳﺮ اﻟﻤﻮﻗﻊ و ﻛﺘﺎﺑﺔ ﺟﻤﻴﻊ اﻟﺪروس ﻣﻦ ﻗﺒﻞ اﻟﻤﺒﺮﻣﺞ‬

‫● ‪  ‬ﻣﺤﻤﺪ ﻫﺮﻣﻮش ‪●  ‬‬

‫ﻓﻲ ﺣﺎل ﻛﻨﺖ ﺗﺮﻏﺐ ﺑﺘﻘﺪﻳﻢ دﻋﻢ ﻣﺎدي ﻟﻠﻤﻮﻗﻊ‪ ,‬ﻳﻤﻜﻨﻚ اﻟﺘﺒﺮع ﻋﺒﺮ ‪ Paypal‬أو ‪ Patreon‬ﺑﺎﻟﻤﺒﻠﻎ اﻟﺬي ﺗﺮﻳﺪه‬

‫ﺗﺒﺮع ﻋﺒﺮ ‪Patreon‬‬ ‫ﺗﺒﺮع ﻋﺒﺮ ‪Paypal‬‬

‫ﺟﻤﻴﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ ﻟﻠﻤﻮﻗﻊ ‪© ٢٠١٤ - ٢٠٢٠  ‬‬

‫ﻣﺤﺘﻮى اﻟﻤﻮﻗﻊ ﻳﺨﻀﻊ ﻟﺮﺧﺼﺔ )‪ (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‬‬

You might also like