前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java学习历程之----提升篇(三)

Java学习历程之----提升篇(三)

作者头像
用户5410712
发布2022-06-01 18:18:09
2260
发布2022-06-01 18:18:09
举报
文章被收录于专栏:居士说AI

禧难题之七:

贝赫和斯维讷通-戴尔猜想:指的是对有理数域上的任一椭圆曲线, 其L函数在1的化零阶等于此曲线上有理点构成的Abel群的秩。数学家总是被诸如X**2+Y**2=Z**2这样的代数方程的所有整数解的刻画问题着迷。欧几里德曾经对这一方程给出完全的解答,但是对于更为复杂的方程,这就变得极为困难。事实上,正如马蒂雅谢维奇指出,希尔伯特第十问题是不可解的,即不存在一般的方法来确定这样的方法是否有一个整数解。当解是一个阿贝尔簇的点时,贝赫和斯维讷通-戴尔猜想认为,有理点的群的大小与一个有关的蔡塔函数z(s)在点s=1附近的性态。特别是,这个有趣的猜想认为,如果z⑴等于0,那么存在无限多个有理点(解),相反,如果z⑴不等于0,那么只存在有限多个这样的点。

前言

上周我们学习了类的继承,子类对父类的继承并不改变类成员的访问权限,也就是说,如果父类的成员是公有的、被保护的或默认的,它的子类仍具有相应的这些特性,但有一点我们要特别注意:子类不能获得父类的构造方法!那么子类想要调用父类的构造方法时,我们应该怎么做呢?

一.super关键字

如果要调用父类的构造方法,可以使用 super关键字。super可以用来访问父类的构造方法、普通方法和属性。Super关键字的主要功能有两点;1)在子类的构造方法中显式的调用父类构造方法,2)访问父类的成员方法和变量。

二.Super关键字调用父类构造方法

super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下:

super(parameter-list);

其中,parameter-list 指定了父类构造方法中的所有参数,super( ) 必须是在子类构造方法的方法体的第一行。具体如何使用我们通过实战进一步详细说明。

三.super关键字访问父类成员

当子类的成员变量或方法与父类同名时,可以使用 super 关键字来访问。如果子类重写了父类的某一个方法,即子类和父类有相同的方法定义,但是有不同的方法体,此时,我们可以通过 super 来调用父类里面的这个方法。

使用 super 访问父类中的成员与 this 关键字的使用相似,只不过它引用的是子类的父类,语法格式如下:

super.member

其中,member 是父类中的属性或方法。使用 super 访问父类的属性和方法时不用位于第一行。下面实战做进一步说明。

四.super和this的区别

4.1.super关键字的用法:

super.父类属性名:调用父类中的属性

super.父类方法名:调用父类中的方法

super():调用父类的无参构造方法

super(参数):调用父类的有参构造方法

4.2. this关键字的用法:

this.属性名:表示当前对象的属性

this.方法名(参数):表示调用当前对象的方法

通俗来讲,可以将super理解为指向父类对象的指针,this为指向当前对象的指针。下面通过实战我们来学习super关键字的用法吧。

五.实战

5.1.super调用父类构造方法

代码语言:javascript
复制
package tisheng3;
class People {
    public People(String name, int age) {//声明父类2个参数的构造方法
        System.out.println("我是带两个参数的父类构造方法:"+name+age+"岁");
    }
    public People(String name, String sex,int age) {//声明父类3个参数的构造方法
        System.out.println("我是带三个参数的父类构造方法:"+name+"性别"+sex+age+"岁");
    }
}
class Pupil extends People {
    public Pupil(int Num) {//声明子类带1个参数的构造方法
        super("IT进阶之旅", 1); // 调用父类中含有2个参数的构造方法
        System.out.println("子类带一个参数的构造方法,日期为:"+Num);
        System.out.println();
    }
    public Pupil(String name, int Num) {//声明子类带两个参数的构造方法
        super("小圈圈", "男", 16); // 调用父类中含有3个参数的构造方法
        System.out.println("子类带2个参数的构造方法,名字为:"+name+"日期为:"+Num);
    }
}
class Test {
    public static void main(String args[]) {
        Pupil X1 = new Pupil(20200502);//调用1个参数的构造方法
        Pupil X2 = new Pupil("农历",20200410);//调用2个参数的构造方法
    }
}

5.2.super关键字访问父类成员

代码语言:javascript
复制
package tisheng3;
class Father {
    int ID = 12345;
    void property() {
        System.out.println(",I'm daddy,I have six dollars!");
    }
}
class Son extends Father {
    int ID = 56789;
    void property() {
        System.out.println("ID:"+ID+",I'm son,I am very poor!");
    }
    void poor() {
        property();//调用子类本身的property方法
        System.out.printf("ID:"+super.ID);//调用父类的成员变量
        super.property();//调用父类的property方法
    }
}
class Test2 {
    public static void main(String args[]) {
        Son s = new Son();//实例化一个Son对象
        System.out.println("调用子类的property方法:");
        s.property();
        System.out.println();
        System.out.println("调用子类的poor方法:");
        s.poor();
    }
}

END

小编有话说:

恍惚间,四月在五一的规划中画上句号,今年也已过去三分之一,岁月不等人,把握当下才能喜迎美好未来!上周课后习题参考答案如下(文末还有本周课后习题,大家记得查收~):

按要求编写一个Java应用程序:

(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。

(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,和计算体积的方法。

(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档