引用数据类型

1.类作为方法的参数或者返回值
   *    我们需要传递的或者返回的,应该该类的对象(不是该类,也不是别的类的对象)

 2.抽象类 作为方法的参数和返回值
   *    我们需要传递的或者返回的,该抽象类的子类的对象

 3.接口作为方法参数和返回值
   *    我们需要传递的或者返回的,该接口的实现类的对象

public abstract class Animal {
     public abstract void eat();
}
public class Person {
    int age;
    String name;
    public Person() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Person(int age, String name) {
        super();
        this.age = age;
        this.name = name;
    }
    
    
}
public class TestDemo {
    public static void main(String[] args) {
        //测试杀人方法
//        Person p1 = new Person(18,"老王");
        //killPerson(new Person(18, "老王"));
        //测试生孩子方法
        //Person p =  getPerson();
        //System.out.println(p.age+".."+p.name);
        //测试杀动物方法
        /*Animal an = new Animal(){

            @Override
            public void eat() {
                // TODO Auto-generated method stub
                System.out.println("Animal的子类吃");
            }
            
        };*/
        killAnimal(new Animal(){

            @Override
            public void eat() {
                // TODO Auto-generated method stub
                System.out.println("吃吃");
            }
            
        });
    }
    //生动物
    public static Animal getAnimal(){
        //1.创建动物的子类对象
        /*Animal an = new Animal(){
            @Override
            public void eat() {
                // TODO Auto-generated method stub
                
            }
        };
        return an;*/
        //直接返回抽象的子类对象
        return  new Animal() {
            
            @Override
            public void eat() {
                // TODO Auto-generated method stub
                
            }
        };
    }
    //吃动物
    public static void killAnimal(Animal an){
        an.eat();
        System.out.println("吃动物");
    }
    
    //
    public static void killPerson(Person p){
        System.out.println("去屎吧.."+p.name);
    }
    //生孩子
    public static Person getPerson(){
        //1.创建一个孩子
//        Person pp = new Person(0,"小卑鄙");
        //2.返回这个孩子
        return new Person(0,"小北鼻");
    }
}

 

posted on 2019-06-26 21:36  backend  阅读(286)  评论(0编辑  收藏  举报

导航