JavaSE8基础 子类中的成员变量与父类重名 简单示例

os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
代码:

//基类
class Person {

	public int num = 1;
}

//子类
class Javaer extends Person {

	//子类中的成员变量与父类重名了
	public int num = 2;

	public void showNum() {
		System.out.println(num);	//输出子类的num
	}
}

//另一个子类
class PHPer extends Person {
	public int num = 2;		//父子类的成员变量重名

	public void showNum() {
		int num = 5;
		System.out.println(num);	//输出函数内部的num值 5
	}
}

class Demo {

	public static void main(String[] args) {
		Javaer j = new Javaer();
		j.showNum();

		PHPer p = new PHPer();
		p.showNum();
	}

}

结果:



Java优秀,值得学习。
学习资源:itcast视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
如果您觉得博文有可以改进的地方,留言即可。

时间: 2024-10-09 22:11:33

JavaSE8基础 子类中的成员变量与父类重名 简单示例的相关文章

JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* * 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量 */ //基类 class Person { public int num = 1; } //子类 class Javaer extends Person { //子类中的成员变量与父类重名了 public int num

JavaSE8基础 子类中所有的构造方法默认访问父类中无参构造方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /*默认的:子类中所有的构造方法默认都会访问父类中无参构造方法*/ //父类 class Father { //无参构造函数 public Father() { System.out.println("父类无参构造函数"); } //有参构造函数 public Father(int num) { S

子类中的成员函数覆盖父类(name hiding)

只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using namespace std; class A{ public: void print(){cout << "A::print()" << endl;} }; class B:public A{ public: void print(int i ){cout <<

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程

继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承.(4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承. 分析以上程序示例,主要疑惑点是“子类继承父类的成员变量,父类对象是否会实例化?私有成员变量是否会被继承?被继承的成员变量

学习IOS开问题篇--类中的成员变量如果不实例化是什么情况

@interface Person : NSObject @property (noatonmic,copy) NSString * name; @end 一个person类,name是person得成员变量 如果在一个类中写入person为成员变量 self.person.name = @"zhangsan"; 如果前面不将person实例化,实际上是在对一个空指针进行操作 [nil setname:@"zhangsan"]; 因为oc中对空指针发消息不会报错,所

父类和子类有相同成员变量时的例子

今天看到一个有趣的程序,如下: public class Test { public static void main(String[] args){ B b=new B(); b.bb(); } } class A{ private String a="a"; public void visit(){ System.out.println(this.a); System.out.println(this.getClass()); } } class B extends A{ priv

iOS 在类实现定义中声明成员变量的怪异方式

WebGL 规范(WebGL Specification) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 看看下面的使用方法,几年前系统地看过 Objective-C 2.0 的官方文档和那本

C++中使用初始化列表比在构造函数中对成员变量赋值更高效

这是在面试中遇到的一个问题,没有答出来,后来上网上查了一些资料,终于弄明白了: 一.首先c++标准规定成员变量必须在调用构造函数前进行初始化(这一点很重要) 二.如果我们在构造函数中对成员变量进行初始化,那么在进入构造函数之前,编译器会调用该成员变量的默认构造函数对成员变量进行初始化,当进入构造函数后,我们对成员变量初始化又会调用复制构造函数,之前的编译器调用的默认构造函数等于浪费了,它做了无用功,降低了效率. 三.如果我们用参数列表的形式对成员变量进行初始化,就不会调用成员变量的默认构造函数了

Objective-c中定义成员变量

ios定义成员变量的方法: 如果只是内部访问,完全可以直接用_xxx(下划线),无需自己定义,编译器会自动生成 如果需要外部访问这个变量,可以用 @property xxx ; @synthesize xxx = _xxx ,这样,编译器会自动生成 get,set函数 :可以很明确的表明这是一个向外部提供set.get方法的属性. http://www.tairan.com/archives/194 Objective-c中定义成员变量