首页 > 编程知识 正文

父类的引用指向子类,父类指针指向子类指针

时间:2023-05-05 23:08:10 阅读:181589 作者:4079

生活中人物的观点

程序中的多态性概念:父类引用指向子类对象,从而产生多种形态

一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定

例如,dog继承了animal

你怎么理解这个代码的意思?

举个例子:

短s=10;

int num=s;

这两行代码意味着您创建了一个s变量,短类型的占两个字节,然后将名为s的变量传递给num。 num这里是int类型,占用4个字节,两行代码可以正常工作

我们想用这两行代码表达的是,我们从小范围的数据传递到大范围的数据是没错的。

这里的Animal是dog的父类,范围比dog的范围大,所以代码可以执行

父类引用只能调用父类声明的属性和方法,而不能调用子类特定的属性和方法。

如果子类重写了父类的方法,则在调用该方法时,将调用子类的重写方法。 公式在实际执行中也遵循复盖原则。 如果子类复盖了父类的方法,请执行子类的复盖后方法,否则执行子类的方法

多态性的使用场景1 :使用父类作为方法参数实现多态性

上面省略的代码都可以通过调用这样的语句来完成

场景2 :使用父类作为方法的返回值实现多态性,以便方法可以返回不同的子类对象

升级(装箱) Animal a=new Dog );

将实际子类对象保存到父类引用中

将Dog转换为动画

自下而上(开箱)例如,使用父对象创建了子类对象。 父对象只能调用父类的方法和对象以及在子类中重写的方法。 我该怎么办? 我们想调用子类的对象

通过将A强转换为子类对象,可以调用子类的对象和方法

向下转型条件:首先存在向上转型: Animal a=new Dog (; 有后面的变革。 向下的转换必须转换成原来的类型

思考:转换方向时,如何判断现在的类型? 你怎么知道他原来的类型? 从这里出现了Instance of关键词

引用instance of类型//返回布尔类型的结果

总结:父类引用指向子类的对象,以产生各种形式。 将子类作为父类看待

使用父类作为方法的形参,实现多态性(饲养的方法)

使用父类作为方法的返回值以实现多态性(如何购买动物)。

Java多态的三个必要条件:

1、 继承

2、 子类重写父类方法

3、 父类引用指向子类对象

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。