使用父类做方法的返回值类型

使用父类做方法的返回值类型

需求:小男孩选一个小女孩玩游戏

    package com.compain;
    //定义小男孩;方法Find,传入父类的对象person,调用父类的方法
    public class Boy {
        public void Find(Person person){
            person.name();
            person.play();
        }
    }

    package com.compain;
    //定义父类,两个方法
    public class Person {
        public void name(){
            System.out.println("女友类");
        }
        public void play(){
            System.out.println("游戏");
        }
    }

    package com.compain;
    //定义小女孩小丽,定义两个方法;这里用到方法的重写
    public class Girl01 extends Person{
        public void name(){
            System.out.println("小丽");
        }
        public void play(){
            System.out.println("大冒险");
        }
    }

    package com.compain;
    //定义小女孩小丽,定义两个方法;这里用到方法的重写
    public class Girl02 extends Person {
        public void name(){
            System.out.println("小红");
        }
        public void play(){
            System.out.println("真心话");
        }
    }

    package com.compain;
    //定义一个游戏类,定义一个方法返回的是父类;传入属性名字,判断传入的字符是否相等;将对应的对象赋值给这里person的对象,personG
    public class PlayGame {
        public static Person getGame(String name){
            Person personG= null;
            if ("小红".equals(name)){
                personG =new Girl02();
            }if ("小丽".equals(name)){
                personG =new Girl01();
            }
            return personG;//返回对应的对象给到boy定义的方法Find里面,进行调用想要的属性
        }
    }

    package com.compain;
    public class Test {
        public static void main(String[] args) {
            /*Girl01 girl01 = new Girl01();
        Girl02 girl02 =new Girl02();*/
            Boy boy = new Boy();
            /*Person person =new Person();*/
           /* person.name();*/
            /*person.play();//父类作为子类的一个对象;调用其方法*/
            Person personG = PlayGame.getGame("小丽");//此时将方法赋值给父类的属性PlayGame.getGame("小丽")= new Girl01();
            //Person personG= new Girl01();//这里是将Girl01的对象赋值给personG;personG可以调用Girl01的所有属性
            boy.Find(personG);//这里相当与调用Girl01的对象寻找对应的名字和方法
        }
    }

  1. 1649293638256
posted @ 2022-04-07 11:58  爱豆技术部  阅读(259)  评论(0)    收藏  举报