父类对象的引用 引用子类对象 和 子类对象的引用 引用子类对象 有什么区别

解决方案 »

  1.   

    父类对象的引用 引用子类对象: 只能调用父类的方法
    父类 f = new 子类();List(父类) l = new ArrayList(子类)();
    l.(父类的方法)子类对象的引用 引用子类对象
    子类 z = new 子类();
    ArrayList a = new ArrayList();一般在容器这块 见的多
    比如
      

  2.   

    class Animal{
    }class Dog extends Animal{
    }Animal a1 = new Dog();这就叫父类引用指向子类对象,指的是定义一个父类的引用,而它实际指向的是子类创建的对象,功能上相当于子类的“向上转型”而向下转型相反,需要注意的是向下转型需要强制类型转换举个例子给你:class Animal{
     public void bark(){
    System.out.println("It's an animal!");
    }
    }class Dog extends Animal{
     public void bark(){
    System.out.println("It's a dog!");
    }
    }public class Test {
            
        
        public static void main(String[] args) {
           
            Animal a1 = new Dog();  //向上转型
            a1.bark();
            Dog a2 =(Dog)a1;       //向下转型
            a2.bark();
            Dog a3=(Dog)new Animal();  //向下转型,但是报错,子类引用不能指向父类对象,注意和上面的区别,上面虽然a1是父类对象,但是它指向了子类的一个对象,所以将它赋给子类对象是可以的
            a3.bark();
        }
    }