父类(指针、引用)指向子类对象

1. 父类类型指向子类对象

include <stdlib.h>
#include <iostream>
using namespace std;class Base_J
{
public:Base_J(){cout << "Base Created" << endl;}virtual ~Base_J(){cout << "Base Destroyed" << endl;}void common_fun(){cout << "Base_J, common_fun" << endl;}// virtual void common_fun() = 0;
};       class Derived_J : public Base_J
{
public:Derived_J(){cout << "Derived Created" << endl;}~Derived_J(){cout << "Derived Destroyed" << endl;}void common_fun(){cout << "Derived_J, common_fun" << endl;}
};int main()
{Derived_J d;Base_J b2 = d;b2.common_fun(); // 如果Base_J定义的common_fun是虚函数,则无法通过编译return 0;
}

运行结果:

user@linux-anju:~/C> ./base
Base Created
Derived Created
Base_J, common_fun
Base Destroyed
Derived Destroyed
Base Destroyed

2. 父类引用指向子类对象
Base_J父类中,common_fun定义为虚函数。

int main()
{Derived_J d;Base_J &b2 = d;b2.common_fun();return 0;
}

运行结果:

user@linux-anju:~/C> ./base
Base Created
Derived Created
Derived_J, common_fun
Derived Destroyed
Base Destroyed

3. 父类指针指向子类对象

int main()
{Derived_J d;Base_J *b3 = &d;b3->common_fun();return 0;
}

运行结果与引用方式一致。

4. 总结

  • 创建父类类型变量后,该变量终结时,会被调用析构函数;
  • 父类引用或指针指向子类变量,终结时不会被调用析构函数;

父类(指针、引用)指向子类对象相关推荐

  1. 父类指针可以指向子类对象

    结论:父类指针可以指向子类对象,但是只能访问父类成员,不能访问子类成员 结论:子类指针不可以指向父类对象,需要类型转换才可以 笔记: <1>.当基类指针指向派生类的时候,只能操作派生类从基 ...

  2. Java 父类的引用指向子类对象有啥用 总结

    1. 你可能会写如下2个方法 feed(Cat cat){    } feed(Dog dog){    } 如果Cat.Dog都是Animal的子类,那你就可以写成 feed(Animal anim ...

  3. Java多态 父类引用指向子类对象

    原文地址http://www.cnblogs.com/111testing/p/6880831.html Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 ...

  4. 父类引用指向子类对象详解

    父类引用指向子类对象 父类引用指向子类对象指的是: 例如父类Animal,子类Cat,Dog.其中Animal可以是类也可以是接口,Cat和Dog是继承或实现Animal的子类. Animal ani ...

  5. java子类引用指向父类对象_Java多态 父类引用指向子类对象

    Java多态的三个必要条件: 1. 继承 2. 子类重写父类方法 3. 父类引用指向子类对象 然后看一个例子 输出结果为: 给出结论:Father  c  =  new  Child()    在c的 ...

  6. 父类引用指向子类对象

    父类引用指向子类对象,如何访问子类的属性? 1.第一种办法最简单,强制类型转化为子类. 2.父类引用指向子类对象,由于当前引用为父类,只能访问父类的字段和方法,但是根据多态性可以访问子类的方法,在这个 ...

  7. Java多态-如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是"向上转型". 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   C ...

  8. [转载] 一文彻底搞懂父类引用指向子类对象问题

    参考链接: 用子类引用子类对象 vs 父类引用 public class Father { private String name; private int age; private int weig ...

  9. java多态 成员访问特点(父类引用指向子类对象)

    >父类 子类  package com.dareway.demo;public class Father {public String index="fatherLogo"; ...

  10. java父类引用子类_java多态,如何理解父类引用指向子类对象

    要理解多态性,首先要知道什么是"向上转型". 转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求 ...

最新文章

  1. bzoj2339[HNOI2011]卡农 dp+容斥
  2. AngularJs2与AMD加载器(dojo requirejs)集成
  3. Maven整合SSM测试
  4. android 音视频 教程,Android移动端音视频的快速开发教程(九)
  5. redis rua解决库存问题_如何解决高并发下的库存安全问题,没你想得那么复杂(附源码)...
  6. python的if语句后面怎么加布尔运算符号是_python if 语句,布尔运算
  7. 【codevs1227】方格取数2,费用流
  8. 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法...
  9. IOS学习笔记 ---- 15/09/02
  10. VC++动态链接库(DLL)编程深入浅出:QA(原创)
  11. Spring定时器技术终结者——采用XML配置的方式实现Spring定时器
  12. Java集合容器面试题(2022版本)
  13. linux内核教学的全套视频,中科大Linux内核分析视频教程下载,共计23集
  14. 如何做 ASO 优化?
  15. ElasticSearch之 ik分词器详解
  16. STM32使用的相关知识点
  17. java数据之头尾链表
  18. 织梦DEDE正则查找批量替换数据库自定义内容
  19. 基于javaweb+mysql的高校学生会社团管理系统(前台、后台)
  20. 前端.什么是冒泡和阻止冒泡的原因和方法

热门文章

  1. 如何在win10安装libaio,并且使用CFLAGS和LDFLAGS环境变量指示其位置,并且如何设置DS_BUILD_AIO=0禁用async_io...
  2. Idea中git进行回滚版本操作和查看修改记录
  3. C# Find() 与 FindAll()方法的使用
  4. android 涨潮动画加载_潮汐app怎么使用?潮汐app各功能测评介绍
  5. 输入一个字符串并原样输出。
  6. 奇异值分解的定义及应用
  7. Java集合有哪些?
  8. Fidder 请求信息颜色的含义
  9. 前端零基础入门-002-集成开发环境
  10. TTL与OC电路和MOS管