Polymorphisme
1. Code et rendus
1. Réécrire
Cas: Utilisation d'une méthode pour réécrire et optimiser le système électronique pour animaux de compagnie
Le code est le suivant (exemple):
package test1;
public class Dog extends Pet{
private String type;
public Dog(String name, int health, int cute, String type) {
super(name, health, cute);
this.type = type;
}
@Override
public void show() {
super.show();
System.out.println("我是一只:"+type);
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
package test1;
public class Penguin extends Pet{
private String sex;
public Penguin(String name, int health, int cute, String sex) {
super(name, health, cute);
this.sex = sex;
}
@Override
public void show() {
super.show();
System.out.println("我的性别是:"+sex);
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package test1;
public class Pet {
private String name;
private int health;
private int cute;
public Pet(String name, int health, int cute) {
this.name = name;
this.health = health;
this.cute = cute;
}
public void show(){
System.out.println("宠物的自白:");
System.out.println("我的名字:"+name+"\t"+"我的健康值为" +
health+"\t"+"我和主人的亲密度是"+cute);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getCute() {
return cute;
}
public void setCute(int cute) {
this.cute = cute;
}
}
package test1;
public class Test {
public static void main(String[] args) {
fun(new Dog("欧欧",100,0,"雪纳瑞犬"));
fun(new Penguin("楠楠",100,0,"Q妹"));
}
private static void fun(Pet pet) {
pet.show();
}
}
2. Réécrire égal
Cas: réécrivez les règles de comparaison pour déterminer si deux étudiants (étudiant) sont le même objet.
Attributs liés aux étudiants
Id (numéro d'élève), nom (nom), âge (âge)
Si deux étudiants ont le même numéro et le même nom d'élève, ils sont le même Le code objet
est le suivant (exemple):
package test2;
public class Student {
private String name;
private int id;
private int age;
public Student(String name, int id, int age) {
this.name = name;
this.id = id;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Student){
Student s= (Student) obj;
return this.name==s.name && this.id==s.id;
}else {
return false;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package test2;
public class TestStu {
public static void main(String[] args) {
Student stu1= new Student("张三",123,22);
Student stu2= new Student("张三",123,26);
System.out.println(stu1.equals(stu2));
}
}
3. Polymorphisme
Cas: utilisez le polymorphisme pour nourrir les
animaux de compagnie. Les animaux ont faim et le propriétaire doit nourrir leurs animaux de compagnie. Utilisez le polymorphisme pour réaliser ce processus.
Différents animaux mangent des choses différentes.
Différents animaux ont des valeurs de santé différentes après avoir mangé. Lorsque la
valeur de santé atteint 100 , non Le code pour continuer l'alimentation
est le suivant (exemple):
package test3;
public class Dog extends Pet{
public Dog(int health) {
super(health);
}
@Override
public void eat(String food) {
System.out.println("狗狗吃"+food+",健康值增加3");
setHealth(getHealth()+3);
}
}
package test3;
public class Master {
public void feed(Pet pet,String food){
pet.eat(food);
}
}
package test3;
public class Penguin extends Pet{
public Penguin(int health) {
super(health);
}
@Override
public void eat(String food) {
System.out.println("企鹅吃"+food+",健康值增加5");
setHealth(getHealth()+5);
}
}
data = pd.read_csv(
package test3;
public class Pet {
private int health;
public Pet(int health) {
this.health = health;
}
public void eat(String food){
System.out.println("宠物吃"+food);
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
if (health>=100){
this.health=100;
System.out.println("已经吃饱了");
}
}
}
package test3;
public class Test {
public static void main(String[] args) {
Master m=new Master();
Dog dog=new Dog(60);
m.feed(dog,"大骨头");
System.out.println(dog.getHealth());
Penguin p=new Penguin(50);
m.feed(p,"鱼");
System.out.println(p.getHealth());
}
}
4. instance de l'opérateur
Cas: Utiliser le polymorphisme pour réaliser la fonction d'adoption et de jeu avec les animaux de compagnie par le propriétaire.Les
chiens ont une méthode unique pour attraper le frisbee, et les pingouins ont une méthode unique de nager en Antarctique. Veuillez écrire une classe de test pour appeler les méthodes uniques de divers animaux de compagnie spécifiques.
Utilisez le casting vers le bas.
Utilisez instanceof pour déterminer le type d'animaux de compagnie.
Le code est le suivant (exemple):
package test4;
public class Dog extends Pet{
public Dog(int health) {
super(health);
}
public void fly(){
System.out.println("狗狗接飞盘");
}
@Override
public void eat(String food) {
System.out.println("狗狗吃"+food+",将康值增加3");
setHealth(getHealth()+3);
}
}
package test4;
public class Master {
public void feed(Pet pet,String food){
pet.eat(food);
}
public void play(Pet pet){
if (pet instanceof Dog){
Dog dog= (Dog) pet;
dog.fly();
}else if (pet instanceof Penguin){
Penguin p= (Penguin) pet;
p.swim();
}
}
public Pet adopt(String name){
if (name.equals("狗狗")){
return new Dog(60);
}else if (name.equals("企鹅")){
return new Penguin(50);
}else {
return null;
}
}
public Pet donate(String name){
if (name.equals("狗狗")){
return new Dog(60);
}else if (name.equals("企鹅")){
return new Penguin(60);
}else {
return null;
}
}
}
package test4;
public class Penguin extends Pet{
public Penguin(int health) {
super(health);
}
public void swim(){
System.out.println("企鹅在游泳");
}
@Override
public void eat(String food) {
System.out.println("企鹅吃"+food+",将康值增加5");
setHealth(getHealth()+5);
}
}
package test4;
public class Pet {
private int health;
public Pet() {
}
public Pet(int health) {
this.health = health;
}
public void eat(String food){
System.out.println("宠物吃"+food);
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
if (health>100){
this.health=100;
System.out.println("吃饱了,再也吃不下了");
}
}
}
package test4;
public class Test {
public static void main(String[] args) {
Master m=new Master();
Pet p = m.adopt("狗狗");
m.feed(p,"大骨头");
m.play(p);
System.out.println(p.getHealth());
Pet a=m.donate("狗狗");
System.out.println("你捐献的是:"+a.getClass().getName());
}
}
Pour résumer
Ce qui précède est le contenu des cas liés au polymorphisme, qui sont principalement réalisés en utilisant des technologies connexes telles que l'héritage, la réécriture et le polymorphisme.