父类对子类的引用(父类引用指向子类对象)

(有什么错误希望大家可以指出来,谢谢。)
使用前提:在父类与子类之间的关系中,调用的方法要在父类中定义。

例如:Animal a=new Dog();

Animal类是Dog类的父类,声明的是一个Animal类,实际上它指向的是子类的一个对象 也就是new 关键字后的。

关键字: 多态,动态链接,向上转型

1、多态

方法的重写与重载和动态链接构成多态性,在父类对子类的引用中主要体现在子类对父类方法的重写

2、动态链接

当父类中定义的某个方法在子类中没有被重写时,调用的是父类的方法,如果子类对父类的方法进行了重新,那么调用的是子类的方法。

3、向上转型

在例子中,实际上是实例化了一个子类Dog类型的对象,Animal类型的父类a只是对他的引用
所以Animal类型的引用是可以指向Dog类型的对象的。这就是“向上转型”

public class Animal {
    public  void animal1(){}
    public void animal2(){}
}
public class Dog extends Animal {
    public  void animal1(){
        System.out.println("继承父类 并对他的方法进行重写");
    }
    public void animal1(String dog){
        System.out.println("此处是对animal1()方法的重载。");
    }

    public static void main(String[] args) {
     Animal a=new Dog();
     a.animal2();//此处的animal3()方法调用的是父类的方法
     a.animal1();//此处是因为在父类中定义了animal1()方法,所以父类类型的引用可以调用这个方法
     a.animal1("sss");//此处出现错误是因为父类中没有定义animal1(String dog)该方法,
                      // 该方法只是对animal1()方法的一个重写,所以父类类型的引用不能调用这个方法
    }
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值