张家界网站优化【张家界开通400电话】张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修-网站制作-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

张家界网站优化【张家界开通400电话】张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修

发表日期: 2021-03-26 10:41:31 浏览次数:101

张家界网站优化【张家界开通400电话】张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修

张家界,原名“大庸市”,湖南省地级市。辖2个市辖区(永定区、武陵源区)、2个县(慈利县、桑植县)。位于湖南西北部,澧水中上游,属武陵山区腹地。 [1]  张家界因旅游建市,是中国最重要的旅游城市之一,是湘鄂渝黔革命根据地的发源地和中心区域。

1982年9月,张家界国家森林公园成为中国第一个国家森林公园。

1988年8月,张家界武陵源风景名胜区被列入国家重点风景名胜区;1992年,由张家界国家森林公园等三大景区构成的武陵源风景名胜区被联合国教科文组织列入《世界自然遗产名录》;2004年2月,被列入全球首批《世界地质公园》;2007年,被列入中国首批国家5A级旅游景区。 [2]  2017年,被授予“国家森林城市”荣誉称号。 [3]  2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。

12.2 调用父类构造方法

当子类实例化时,不仅需要初始化子类成员变量,也需要初始化父类成员变量,初始化父类成员变量需要调用父类构造方法,子类使用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并没有默认构造方法,因此会发生编译错误。解决这个编译错误有三种办法:

  1. 在父类Person中添加默认构造方法,子类Student会隐式调用父类的默认构造方法。

  2. 在子类Studen构造方法添加super语句,显式调用父类构造方法,super语句必须是第一条语句。

  3. 在子类Studen构造方法添加this语句,显式调用当前对象其他构造方法,this语句必须是第一条语句。

12.3 成员变量隐藏和方法覆盖

子类继承父类后,在子类中有可能声明了与父类一样的成员变量或方法,那么会出现什么情况呢?

12.3.1 成员变量隐藏

子类成员变量与父类一样,会屏蔽父类中的成员变量,称为“成员变量隐藏”。示例代码如下:

//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电话张家界网站搭建、张家界微信公众号推文外包、张家界开通京东拼多多设计、张家界淘宝装修

上一条:张家界400电话办理【张家界网站公司】张家界百度优化、张家界域名注册、张家界网店美工、张家界微信公众号托管
下一条:张家界小程序制作【张家界企业邮箱】张家界网站外包、张家界微信商城开发、张家界网店美工、张家界淘宝设计
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约