Created
July 19, 2018 00:11
-
-
Save edenizk/5cff0188fde6712c03c40b559469308b to your computer and use it in GitHub Desktop.
polymorphism with animal class
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.deniz.polymorphism; | |
public class Animal { | |
private String animalName; | |
private String animalColor; | |
private int animalSpeed; | |
private int animalPower; | |
public Animal(String animalName, String animalColor, int animalSpeed, int animalPower){ | |
if (animalPower <= 0){ | |
throw new IllegalArgumentException("The power must be more than 0"); | |
} | |
if(animalSpeed <= 0){ | |
throw new IllegalArgumentException("The speed must be more than 0"); | |
} | |
this.animalName = animalName; | |
this.animalColor = animalColor; | |
this.animalPower = animalPower; | |
this.animalSpeed = animalSpeed; | |
} | |
public String getAnimalName() { | |
return animalName; | |
} | |
public void setAnimalName(String animalName) { | |
this.animalName = animalName; | |
} | |
public String getAnimalColor() { | |
return animalColor; | |
} | |
public void setAnimalColor(String animalColor) { | |
this.animalColor = animalColor; | |
} | |
public int getAnimalSpeed() { | |
return animalSpeed; | |
} | |
public void setAnimalSpeed(int animalSpeed) { | |
this.animalSpeed = animalSpeed; | |
} | |
public int getAnimalPower() { | |
return animalPower; | |
} | |
public void setAnimalPower(int animalPower) { | |
this.animalPower = animalPower; | |
} | |
public int calculateTheOveralPowerOfAnimal(){ | |
return getAnimalPower() * getAnimalSpeed(); | |
} | |
@Override | |
public String toString() { | |
return String.format("%s: %s%n%s: %s%n%s: %d%n%s: %d", | |
"Animal Name", getAnimalName(), "Animal Color", | |
getAnimalColor(), "Animal Power", getAnimalPower(), | |
"Animal Speed", getAnimalSpeed()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.deniz.polymorphism; | |
public class Cat extends Animal { | |
public Cat(String animalName, String animalColor, int power, int speed){ | |
super(animalName, animalColor, speed, power); | |
} | |
@Override | |
public int calculateTheOveralPowerOfAnimal(){ | |
return super.calculateTheOveralPowerOfAnimal(); | |
} | |
@Override | |
public String toString(){ | |
return "Cat: " + super.toString(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.deniz.polymorphism; | |
public class Lion extends Animal { | |
private boolean canFight = true; | |
private int fightingPower; | |
public Lion(String animalName, String animalColor, int power, int speed, boolean canFight, int fightingPower){ | |
super(animalName, animalColor, power, speed); | |
if(fightingPower <= 0){ | |
throw new IllegalArgumentException("The fighting power must be more than 0"); | |
} | |
this.canFight = canFight; | |
this.fightingPower = fightingPower; | |
} | |
public boolean isCanFight() { | |
return canFight; | |
} | |
public void setCanFight(boolean canFight) { | |
this.canFight = canFight; | |
} | |
public int getFightingPower() { | |
return fightingPower; | |
} | |
public void setFightingPower(int fightingPower) { | |
this.fightingPower = fightingPower; | |
} | |
public int calculateTheOveralPowerOfAnimal(){ | |
return calculateTheOveralPowerOfAnimal() + getFightingPower(); | |
} | |
@Override | |
public String toString() { | |
return String.format("%s%n%s: %b%n%s:%d", super.toString(), | |
"Can Lion Fight?", isCanFight(), "The Fighting Power", getFightingPower()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.deniz.polymorphism; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.widget.TextView; | |
public class MainActivity extends AppCompatActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
TextView txtAnimal = (TextView) findViewById(R.id.txtAnimal); | |
TextView txtLion = (TextView) findViewById(R.id.txtLion); | |
TextView txtPolyLion = (TextView) findViewById(R.id.txtPolyLion); | |
TextView txtPolyCat = (TextView) findViewById(R.id.txtPolyCat); | |
Animal animal = new Animal("Bear", "Black", 200, 300); | |
Lion lion = new Lion("myLion", "yellow", 400, 700, true, 170); | |
txtAnimal.setText(animal.toString()); | |
txtLion.setText(lion.toString()); | |
Animal myAnimal = lion; | |
txtPolyLion.setText(myAnimal.toString()); | |
Cat myCat = new Cat("My Cat", "White", 400, 700); | |
Animal myAnimal2 = myCat; | |
txtPolyCat.setText(myAnimal2.toString()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment