由父类引用调用子类独有的方法引出模板方法模式

原创 2018年04月16日 10:56:48

夕阳下的聊天:
和小伙伴一起去吃饭,他跟我说面试官问了他一个问题:父类引用如何调用子类重载或者独有的方法?我一愣,工作快两年了,从来没有遇到过这种用法。我当时想的是向下转型,小伙伴说,还可以使用反射。对啊,反射都用了,想拿啥拿啥呗。吃完饭回到家,看了几篇博客,很有启发,牵引出了以前不怎么理解的模板模式。

多态实现的三个步骤:继承、重写、向上转型,这样父类引用可以调用子类重写的方法。回到问题:父类引用想要调用子类重载或者独有的方法,问题是为什么要有这种操作呢?如果要调用子类独有的方法,为什么要用继承呢?解决上述有点矛盾的问题,用到了模板方法模式。

我只是抛砖引玉,关于模板方法模式,好博客太多了,请参考大神的博客:
https://blog.csdn.net/shensky711/article/details/53418034

版权声明:未经博主允许不得转载 https://blog.csdn.net/ImagineDranges/article/details/79957757

如何通过父类引用“调用”子类所独有的方法

该做法的意义何在,姑且不论。今天我们主要关注该功能的实现,至少在实现的思路上是对面向对象思想的一次深入理解。 首先一点,父类引用是无法调用子类独有的方法(不仅无法访问,而且是不可见的),结论是显然的,...
  • lanchunhui
  • lanchunhui
  • 2016-02-24 12:21:18
  • 2167

JAVA基础 -从父类的引用如何调用子类中独有的方法

首先放上源文件 父类  Animal.java package com.imooc; public class Animal {     public void eat(){   ...
  • qq_35809245
  • qq_35809245
  • 2016-08-15 21:32:18
  • 13585

父类的引用指向子类的对象怎么调用子类的方法

多态。 如果说父类中有这个属性跟方法,子类有重写过,那么调用的是子类中的属性跟方法。 如果父类中没有这个属性跟方法,那么子类调用就会出错。 如果父类有这个属性跟方法,而子类没有,则调用的是父类的属性跟...
  • lafengwnagzi
  • lafengwnagzi
  • 2016-12-27 16:39:14
  • 1509

深入了解父类引用指向子类

父类应用指向子类对象指的是: 父类Animal,子类 Cat,Dog。其中Animal可以是接口或类,Cat和Dog 是继承或实现Animal的子类。 Animal animal= new Cat(...
  • han_yankun2009
  • han_yankun2009
  • 2014-10-25 13:06:55
  • 8921

(java)对象引用向上转型后,无法调用子类独有的方法和属性问题

在下面的代码中,即可验证这一点,class StaticTest1 { private static int c=2017; public void print(){ S...
  • Puzo0074
  • Puzo0074
  • 2017-11-11 21:03:25
  • 253

C#父类引用指向子类

今天研究了一下 C#中有关父类引用指向子类的问题。所谓“父类引用指向子类”是指声明为父类对象,但实例化创建子类对象。举例说明父类Teacher、子类Professor,声明和实例化:Teacher l...
  • huchunfu
  • huchunfu
  • 2012-12-11 23:01:33
  • 2112

Java 中深层理解父类引用指向子类对象

从对象的内存角度来理解试试. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存. 现在通过代码来看看内存的分配情况:Father...
  • Frank_Jay
  • Frank_Jay
  • 2015-10-12 21:44:50
  • 629

子类new出来的实例赋值给父类对象,父类对象调用方法遇到的问题。

一句话总结,看不懂参考一下下面的代码: 声明的对象是父类的对象(SuperClass),但实际指向的内存空间是子类new出来的实例。 如果父类对象调用方法(比如,toString),子类没有重写此方法...
  • qq_27853161
  • qq_27853161
  • 2016-11-17 17:32:44
  • 1327

继承的概念:继承是指类与类之间的继承关系 ,子类继承父类,子类可以将父类的属性方法继承下来 网址:www.iphonetrain.com 以下代码是了车类与出租车类 共同继承了Car属性

继承的概念:继承是指类与类之间的继承关系 ,子类继承父类,子类可以将父类的属性方法继承下来,现实生活中继承指的是对象与对象的继承关系,程序间的继承是指类与类之间的继承关系。继承关系的梳理:A类是B类(...
  • MacYHY
  • MacYHY
  • 2015-06-11 10:44:18
  • 894
收藏助手
不良信息举报
您举报文章:由父类引用调用子类独有的方法引出模板方法模式
举报原因:
原因补充:

(最多只允许输入30个字)