inheritance examplesveerasam/advjava/inheritance3.pdf · multiple inheritance – a derived class...
TRANSCRIPT
![Page 1: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/1.jpg)
Inheritance Examples
1
![Page 2: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/2.jpg)
Real-world Examples: Animals
Source code: http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming
Animal
Dog Cat
2
![Page 3: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/3.jpg)
3
Example #2: Timepieces
![Page 4: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/4.jpg)
Multiple inheritance
– A derived class can have more than one base class
– Java does not support it – uses “interface” instead.
4
![Page 5: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/5.jpg)
Example #3: Shapes
Basic Shape
Circle Polygon Ellipse
Square HexagonRectangle
5
![Page 6: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/6.jpg)
Example #4: Wireless Telephony
Mobile initiated
message
Registration Call Processing SMS
Origination Page Response
6
![Page 7: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/7.jpg)
Value of inheritance?
• Helps us to break software into manageable
pieces
• Existing classes can be morphed to design new
classes – code reuse
• Enables us to group different types of objects
together and do some action on all of them.
7
![Page 8: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/8.jpg)
Inheritance Examples in
Java and C++
8
![Page 9: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/9.jpg)
Back to Example #1:
Animals
9
Animal
Dog Cat
Want to group them together &make them talk?
![Page 10: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/10.jpg)
![Page 11: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/11.jpg)
Concepts
• Static binding vs. dynamic binding
• Polymorphism using virtual methods
• Abstract base class
• Ability of base class pointers to point to
derived class objects
10
![Page 12: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/12.jpg)
Add Human?
11
Animal
Dog Cat
Human
Want to group them together &make them talk?
![Page 13: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/13.jpg)
C++
12
Animal
Dog Cat
Human
AnimalActions
![Page 14: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/14.jpg)
Java: Interface
13
Animal
Dog Cat
Human
AnimalActions
![Page 15: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/15.jpg)
Example from Wiki:
Bad use of Inheritance
14
Parrot Human
Whistler
![Page 16: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/16.jpg)
Example from Wiki
15
WhistlerParrot Human
![Page 17: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/17.jpg)
Concepts
• Interface
16
![Page 18: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/18.jpg)
C++
17
Animal
Dog Cat Human
AnimalActions
![Page 19: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/19.jpg)
Java: Interface
18
Animal
Dog Cat
Human
AnimalActions
![Page 20: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/20.jpg)
Inheritance Examples in
Java and C++
19
![Page 21: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/21.jpg)
References
• http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming -
Animals : Inheritance coding examples in Java/C++/…
• http://en.wikipedia.org/wiki/Interface_%28Java%29 – Java Interfaces
20
![Page 22: Inheritance Examplesveerasam/AdvJava/inheritance3.pdf · Multiple inheritance – A derived class can have more than one base class – Java does not support it –uses “interface”](https://reader030.vdocuments.site/reader030/viewer/2022040323/5e688375b72e525fe40f7937/html5/thumbnails/22.jpg)