c++与java中子类中调用父类成员的方法

简介: 1 java中: 2 import java.util.Scanner; 3 public class ClassTest{ 4 public static void main(String args[]){ 5 child ch=new child(2); 6 parent p=ch; 7 p.
 1 java中:
 2 import java.util.Scanner;
 3 public class ClassTest{
 4    public static void main(String args[]){
 5       child ch=new child(2);
 6       parent p=ch;
 7       p.print();
 8       //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类!
 9    }
10 } 
11 
12 class parent{
13    int xx;
14    parent(int x){
15       xx=x;
16    }
17    void print(){
18       System.out.println("this is parent!");
19    }
20    int f(){
21       int n;
22       Scanner s=new Scanner(System.in);
23       n=s.nextInt();
24       return n;
25    }
26 }
27 
28 class child extends parent{
29    int xx;
30    void print(){
31       System.out.println("this is child!");
32       System.out.println("父类中的f()函数得到的值:" + super.f());//当然也可以通过super来区分子类与父类同名函数的方法
33       System.out.println("子类中的f()函数得到的值:" + f());
34    }
35    void print2(){
36       System.out.println("this is test!");
37    }
38    child(int x){
39       super(x);//调用父类的构造方法
40       xx=5;
41    }
42    int f(){
43       System.out.println("父类中的xx值:" + super.xx);//通过super.xxx可以区分子类与父类同名的变量
44       System.out.println("子类中的xx值:" + xx);
45       return 15;
46    }
47 }
 1 c++中:
 2 #include<iostream> 
 3 using namespace std;
 4 class parent
 5 {
 6 public:
 7    int p;
 8    parent(int x)
 9    {
10        p=x;
11    }
12    void print()
13    {
14       cout<<"this is parent" <<endl;
15    } 
16    int f()
17    {
18     return 11; 
19    } 
20 }; 
21 
22 class child : public parent
23 {
24 public:
25    int p; 
26    child(int x):parent(x)
27    {
28        p=15;
29    }
30    int f()
31    {
32       return 22;
33    } 
34    void print()
35    {
36        cout<<"this is child!" <<endl;
37        cout<<"父类中的 p 变量值:"<<parent::p<<endl;
38        cout<<"子类中的 p 变量值:"<<p<<endl; 
39        
40        cout<<"父类中的f()函数值:"<<parent::f()<<endl;
41        cout<<"子类中的f()函数值:"<<f()<<endl; 
42    } 
43    void print2()
44    {
45       cout<<"this is test!" <<endl;
46    } 
47 };
48 
49 int main()
50 {
51    child ch(2);
52    ch.print();
53    return 0;
54 }

 

 

目录
相关文章
|
3天前
|
安全 C++
【c++】继承(继承的定义格式、赋值兼容转换、多继承、派生类默认成员函数规则、继承与友元、继承与静态成员)
本文深入探讨了C++中的继承机制,作为面向对象编程(OOP)的核心特性之一。继承通过允许派生类扩展基类的属性和方法,极大促进了代码复用,增强了代码的可维护性和可扩展性。文章详细介绍了继承的基本概念、定义格式、继承方式(public、protected、private)、赋值兼容转换、作用域问题、默认成员函数规则、继承与友元、静态成员、多继承及菱形继承问题,并对比了继承与组合的优缺点。最后总结指出,虽然继承提高了代码灵活性和复用率,但也带来了耦合度高的问题,建议在“has-a”和“is-a”关系同时存在时优先使用组合。
29 6
|
6天前
|
运维 Java 程序员
Java中的异常处理方法
本文深入剖析Java异常处理机制,介绍可检查异常、运行时异常和错误的区别与处理方式。通过最佳实践方法,如使用合适的异常类型、声明精确异常、try-with-resources语句块、记录异常信息等,帮助开发者提高代码的可靠性、可读性和可维护性。良好的异常处理能保证程序稳定运行,避免资源泄漏和潜在问题。
|
6天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
26 5
|
21天前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
21天前
|
安全 编译器 C语言
【C++篇】深度解析类与对象(中)
在上一篇博客中,我们学习了C++类与对象的基础内容。这一次,我们将深入探讨C++类的关键特性,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载、以及取地址运算符的重载。这些内容是理解面向对象编程的关键,也帮助我们更好地掌握C++内存管理的细节和编码的高级技巧。
|
21天前
|
存储 程序员 C语言
【C++篇】深度解析类与对象(上)
在C++中,类和对象是面向对象编程的基础组成部分。通过类,程序员可以对现实世界的实体进行模拟和抽象。类的基本概念包括成员变量、成员函数、访问控制等。本篇博客将介绍C++类与对象的基础知识,为后续学习打下良好的基础。
Java父类强制转换子类原则
近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了。 我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗? 来看下面这段程序:
|
2天前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
43 23
|
9天前
|
Java 调度
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
当我们创建一个`ThreadPoolExecutor`的时候,你是否会好奇🤔,它到底发生了什么?比如:我传的拒绝策略、线程工厂是啥时候被使用的? 核心线程数是个啥?最大线程数和它又有什么关系?线程池,它是怎么调度,我们传入的线程?...不要着急,小手手点上关注、点赞、收藏。主播马上从源码的角度带你们探索神秘线程池的世界...
67 0
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
|
13天前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
128 60
【Java并发】【线程池】带你从0-1入门线程池

热门文章

最新文章