黑马-继承-同名成员处理方式

文章讲述了在C++中,子类对父类同名成员的处理方式。子类会隐藏父类的同名成员函数,但可以通过作用域解析运算符来访问。示例代码展示了如何在子类中调用父类的同名成员函数和数据成员。

//1、子类中的同名成员可以直接访问
//2、父类中的同名成员需要加上作用域
//3、子类中的同名成员会隐藏掉父类中的所用同名成员函数,加作用域可以访问

#include<iostream>
using namespace std;
class Base {
public:
	int m_a;
	Base() {
		m_a = 100;
	}
	void func() {
		cout << "Base的func函数调用" << endl;
	}
	void func(int a) {
		cout << "Base中的同名函数func调用" << endl;
	}
};
class son :public Base {
public:
	son() {
		m_a = 200;
	}
	int m_a;
	void func() {
		cout << "son的func函数调用" << endl;
	}

};
void test() {
	son s;
	s.func();
	s.Base::func();
	s.Base::func(10);
	cout <<"son下的m_a="<< s.m_a << endl;
	cout << "Base下的m_a=" << s.Base::m_a << endl;
}
int main() {
	test();
	return 0;
}

黑马程序员的 Java 课程笔记通常涵盖从基础语法到高级特性的全面内容,帮助学习者系统性地掌握 Java 编程语言。以下是一个基于常见课程结构和知识点的整理笔记概要,结合了你提供的引用内容中的相关信息: ### ### Java 语言概述 Java 是一种广泛使用的面向对象编程语言,具有平台无关性、安全性高、性能优良等特点。其核心特性包括 **JVM(Java 虚拟机)**、**JRE(Java 运行环境)** 和 **JDK(Java 开发工具包)** 的分层结构,确保 Java 程序可以在任何支持 JVM 的设备上运行[^3]。 ### ### 开发环境搭建 - **JVM(Java 虚拟机)**:负责执行 Java 字节码,是 Java 实现跨平台运行的核心机制。 - **JRE(Java 运行环境)**:包含 JVM 和 Java 类库,用于运行 Java 程序。 - **JDK(Java 开发工具包)**:包含 JRE 和开发工具(如编译器 `javac` 和解释器 `java`),是开发 Java 应用程序的必备工具[^1]。 配置环境变量时,一种常见做法是将 JDK 的 `bin` 目录路径直接添加到系统 `PATH` 环境变量中,以确保在命令行中可以运行 `javac` 和 `java` 命令[^3]。 ### ### 第一个 Java 程序:HelloWorld 一个简单的 Java 程序如下: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("HelloWorld"); } } ``` - `public class HelloWorld` 定义了一个类,类名必须与文件名一致。 - `main` 方法是程序的入口点,其格式必须为 `public static void main(String[] args)`。 - `System.out.println` 用于输出字符串并换行[^3]。 ### ### 变量与数据类型 Java 是一种静态类型语言,变量在使用前必须声明其数据类型。常见的数据类型包括基本数据类型(如 `int`、`double`、`boolean`)和引用数据类型(如 `String`)。 示例代码: ```java int age = 20; String name = "John"; ``` ### ### 关键字与标识符 关键字是 Java 中具有特殊含义的保留字,例如 `public`、`static`、`void` 等。标识符是用户定义的变量名、方法名或类名,必须遵循命名规则(如不能以数字开头、不能使用关键字等)。 ### ### this 关键字 `this` 关键字用于引用当前对象的成员变量或方法。当方法中的局部变量与成员变量同名时,可以通过 `this` 区分它们: ```java private int age = 20; public void getAge() { int age = 10; System.out.println(age); // 输出局部变量 10 System.out.println(this.age); // 输出成员变量 20 } private String name; public void setName(String name) { this.name = name; // 使用 this 区分成员变量和局部变量 } ``` ### ### 相关问题 1. Java 中的 static 关键字有什么作用? 2. 如何在 Java 中实现类的封装? 3. Java 中的继承和多态性如何实现? 4. Java 的异常处理机制有哪些关键点? 5. Java 中的集合框架有哪些常用类?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值