
发表日期: 2021-03-26 10:41:31 浏览次数:95
张家界网站优化【张家界开通400电话】张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修
张家界,原名“大庸市”,湖南省地级市。辖2个市辖区(永定区、武陵源区)、2个县(慈利县、桑植县)。位于湖南西北部,澧水中上游,属武陵山区腹地。 [1] 张家界因旅游建市,是中国最重要的旅游城市之一,是湘鄂渝黔革命根据地的发源地和中心区域。
1982年9月,张家界国家森林公园成为中国第一个国家森林公园。
1988年8月,张家界武陵源风景名胜区被列入国家重点风景名胜区;1992年,由张家界国家森林公园等三大景区构成的武陵源风景名胜区被联合国教科文组织列入《世界自然遗产名录》;2004年2月,被列入全球首批《世界地质公园》;2007年,被列入中国首批国家5A级旅游景区。 [2] 2017年,被授予“国家森林城市”荣誉称号。 [3] 2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。
当子类实例化时,不仅需要初始化子类成员变量,也需要初始化父类成员变量,初始化父类成员变量需要调用父类构造方法,子类使用super关键字调用父类构造方法。
下面看一个示例,现有父类Person和子类Student,它们类图如图12-4所示。

图12-4 Person和Student类图
父类Person代码如下:
//Person.java文件package com.a51work6;import java.util.Date;public class Person {
// 名字
private String name;
// 年龄
private int age;
// 出生日期
private Date birthDate;
// 三个参数构造方法
public Person(String name, int age, Date d) {
this.name = name;
this.age = age;
birthDate = d;
}
public Person(String name, int age) {
// 调用三个参数构造方法
this(name, age, new Date());
}
...}复制代码子类Student代码如下:
//Student.java文件package com.a51work6;import java.util.Date;public class Student extends Person {
// 所在学校
private String school;
public Student(String name, int age, Date d, String school) {
super(name, age, d); ①
this.school = school;
}
public Student(String name, int age, String school) {
// this.school = school;//编译错误
super(name, age); ②
this.school = school;
}
public Student(String name, String school) { // 编译错误 ③
// super(name, 30);
this.school = school;
}}复制代码在Student子类代码第①行和第②行是调用父类构造方法,代码第①行super(name, age, d)语句是调用父类的Person(String name, int age, Date d)构造方法,代码第②行super(name, age)语句是调用父类的Person(String name, int age)构造方法。
提示 super语句必须位于子类构造方法的第一行。
代码第③行构造方法由于没有super语句,编译器会试图调用父类默认构造方法(无参数构造方法),但是父类Person并没有默认构造方法,因此会发生编译错误。解决这个编译错误有三种办法:
在父类Person中添加默认构造方法,子类Student会隐式调用父类的默认构造方法。
在子类Studen构造方法添加super语句,显式调用父类构造方法,super语句必须是第一条语句。
在子类Studen构造方法添加this语句,显式调用当前对象其他构造方法,this语句必须是第一条语句。
子类继承父类后,在子类中有可能声明了与父类一样的成员变量或方法,那么会出现什么情况呢?
子类成员变量与父类一样,会屏蔽父类中的成员变量,称为“成员变量隐藏”。示例代码如下:
//ParentClass.java文件package com.a51work6;class ParentClass {
// x成员变量
int x = 10; ①}class SubClass extends ParentClass {
// 屏蔽父类x成员变量
int x = 20; ②
public void print() {
// 访问子类对象x成员变量
System.out.println("x = " + x); ③
// 访问父类x成员变量
System.out.println("super.x = " + super.x); ④
}}复制代码调用代码如下:
//HelloWorld.java文件package com.a51work6;public class HelloWorld {
public static void main(String[] args) {
//实例化子类SubClass
SubClass pObj = new SubClass();
//调用子类print方法
pObj.print();
}}复制代码运行结果如下:
x = 20super.x = 10复制代码
上述代码第①行是在ParentClass类声明x成员变量,那么在它的子类SubClass代码第②行也声明了x成员变量,它会屏蔽父类中的x成员变量。那么代码第③行的x是子类中的x成员变量。如果要调用父类中的x成员变量,则需要super关键字,见代码第④行的super.x。
张家界网站优化【张家界开通400电话】张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878