184 lines
2.5 KiB
Plaintext
184 lines
2.5 KiB
Plaintext
Application
|
||
Programming
|
||
Hend Alkittawi
|
||
|
||
OOP Concepts
|
||
Polymorphism
|
||
|
||
POLYMORPHISM
|
||
-
|
||
|
||
Polymorphism enables you to write programs that processes
|
||
objects that share the same superclass either directly or
|
||
indirectly as if they were all objects of the superclass.
|
||
|
||
-
|
||
|
||
The polymorphism occurs when a program invokes a method
|
||
through a superclass variable, at execution time the correct
|
||
subclass version of the method is called based on the type of
|
||
reference stored in the superclass variable.
|
||
|
||
-
|
||
|
||
A program can determine the type of an object at execution
|
||
time and act on that object accordingly.
|
||
|
||
POLYMORPHISM
|
||
|
||
Animal
|
||
|
||
Fish
|
||
|
||
🐟
|
||
|
||
Frog
|
||
|
||
🐸
|
||
|
||
Bird
|
||
|
||
🐦
|
||
|
||
xy coordinates
|
||
|
||
xy coordinates
|
||
|
||
xy coordinates
|
||
|
||
move()
|
||
|
||
move()
|
||
|
||
move()
|
||
|
||
POLYMORPHISM
|
||
Quadrilatera
|
||
l
|
||
|
||
Square
|
||
|
||
Trapezoid
|
||
|
||
Parallelogram
|
||
s
|
||
|
||
color
|
||
|
||
color
|
||
|
||
color
|
||
|
||
getPerimeter()
|
||
|
||
getPerimeter()
|
||
|
||
getPerimeter()
|
||
|
||
POLYMORPHISM
|
||
|
||
SpaceObject
|
||
|
||
LaserBeam
|
||
|
||
SpaceShip
|
||
|
||
Plutonian
|
||
|
||
picture
|
||
|
||
picture
|
||
|
||
picture
|
||
|
||
draw()
|
||
|
||
draw()
|
||
|
||
draw()
|
||
|
||
public class Animal {
|
||
|
||
public class PolymorphismDemo {
|
||
|
||
private String name;
|
||
|
||
public static void main(String[] args) {
|
||
|
||
public Animal(String name) { this.name = name; }
|
||
|
||
// Animal reference but Dog object
|
||
Animal myAnimal = new Dog("Thunder", 30);
|
||
// Output: Thunder the dog barks.
|
||
myAnimal.makeSound();
|
||
|
||
public String getName() { return name; }
|
||
public void setName(String name) { this.name = name; }
|
||
|
||
// Animal reference but Cat object
|
||
myAnimal = new Cat("Whiskers", "Persian");
|
||
// Output: Whiskers the cat meows.
|
||
myAnimal.makeSound();
|
||
|
||
public void eat() { System.out.println(getName() + " eats food."); }
|
||
public void makeSound() { System.out.println("Animal makes a sound."); }
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
public class Dog extends Animal {
|
||
public class Cat extends Animal {
|
||
private int exerciseNeeds; // in min/day
|
||
private String breed;
|
||
public Dog(String name, int exerciseNeeds) {
|
||
super(name);
|
||
this.exerciseNeeds = exerciseNeeds;
|
||
}
|
||
public int getExerciseNeeds() {
|
||
return exerciseNeeds;
|
||
}
|
||
public void setExerciseNeeds(int exerciseNeeds) {
|
||
this.exerciseNeeds = exerciseNeeds;
|
||
}
|
||
@Override
|
||
public void makeSound() {
|
||
System.out.println(getName() + " the dog barks.");
|
||
}
|
||
}
|
||
|
||
public Cat(String name, String breed) {
|
||
super(name);
|
||
this.breed = breed;
|
||
}
|
||
public String getBreed() {
|
||
return breed;
|
||
}
|
||
public void setBreed(String breed) {
|
||
this.breed = breed; }
|
||
@Override
|
||
public void makeSound() {
|
||
System.out.println(getName() + " the cat meows.");
|
||
}
|
||
}
|
||
|
||
CODE DEMO
|
||
-
|
||
|
||
Create classes to demo
|
||
polymorphism concepts!
|
||
|
||
DO YOU HAVE ANY
|
||
QUESTIONS?
|
||
|
||
THANK
|
||
YOU!
|
||
|
||
@
|
||
|
||
hend.alkittawi@utsa.edu
|
||
|
||
By Appointment
|
||
Online
|
||
|
||
|