다형성, 재 작성 메소드, instanceof 연산자 및 재 작성의 관련 사례는 Java에서 동일합니다.

1. 코드 및 렌더링

1. 재 작성

사례 : 전자 애완 동물 시스템 재 작성 및 최적화 방법 사용

코드는 다음과 같습니다 (예제).

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. 다시 쓰기

사례 : 두 학생 (학생)이 동일한 대상인지 확인하기 위해 비교 규칙을 다시 작성합니다.
학생 관련 속성
ID (학생 번호), 이름 (이름), 연령 (연령)
두 학생이 동일한 학생 번호와 이름을 가진 경우 동일 객체
코드는 다음과 같습니다 (예제).

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. 다형성

사례 : 반려
동물 에게 다형성을 사용합니다 . 반려 동물은 배고프고 주인은 반려 동물에게 먹이를 주어야합니다. 다형성을 사용하여이 과정을 수행하십시오.
반려 동물마다 다른 것을 먹습니다.
반려 동물마다 식사 후 건강 값 다릅니다.
건강 값이 100에 도달하면 , no 공급을 계속하는
코드는 다음과 같습니다 (예제).

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.instanceof 연산자

사례 : 주인이 애완 동물을 입양하고 노는 기능을 구현하기 위해 다형성을 사용합니다.
개는 프리즈 비를 잡는 독특한 방법이 있고 펭귄은 남극 대륙에서 독특한 수영 방법이 있습니다. 다양한 특정 펫의 고유 한 메소드를 호출하는 테스트 클래스를 작성해주세요
다운 캐스팅을
사용하고 instanceof를 사용하여 펫의 종류를 결정하세요.

코드는 다음과 같습니다 (예제).

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());
    }
}

요약하자면

위 내용은 주로 상속, 재 작성, 다형성과 같은 관련 기술을 사용하여 실현되는 다형성 관련 사례의 내용입니다.

추천

출처blog.csdn.net/StruggleBamboo/article/details/111300225