吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2887|回复: 8
收起左侧

[Java 转载] Java自学记录Day27

  [复制链接]
JXNU1999python 发表于 2022-1-3 09:50

Java自学记录Day27

一、学习目标:

super关键字的使用与IDEA开发工具的配置

二、学习内容

(一)、了解super关键字的基本用法

1、super关键字

代表的是当前对象父类型的特征。

2、super.name调用父类中的属性,私有化属性不可以被访问

Test类

public class TestPet extends Dog{
    public TestPet(){
        this(4);
    }
    public TestPet(int number){
        super(5);
    }
    public void test(){

        System.out.println(super.name);
        System.out.println(super.name="猪头");

    }
    public void pet(){

    }
    public static void main(String[] args) {
        TestPet master=new TestPet();
        master.test();

    }
}
public class Dog extends Pet{
    String name="旺财";
    int age=2;
    public Dog(){
        this(1);//调用本类的构造方法
        System.out.println(super.name);//二哈
    }
    public Dog(int age){
        System.out.println(name)//旺财
        System.out.println(super.name);//二哈
    }

}

Pet类

public class Pet {
    String name="二哈";
    int age=0;
    public Pet(){
    }
    public Pet(String name, int age){
        super();//可省略
        this.age=age;
        this.name=name;
        System.out.println("222222");
    }
}

3、super();调用父类中的无参数构造方法,只能在子类中的构造方法第一行调用父类的构造方法。

并且一个构造方法中只能调用父类中一个构造方法,该语句书写在构造方法第一行。

super(int number);调用父类中的有参数构造方法。

Dog类

public class Dog extends Pet{
    String name="旺财";
    int age=2;
    public Dog(){
        this(1);//调用本类的构造方法
        System.out.println(super.name);//二哈
    }
    public Dog(int age){
        super("大黄",3);//书写在第一行,调用父类pet类中的含参数构造方法
        System.out.println(age);//2
        System.out.println(super.age);//3
        System.out.println(super.name);//大黄
    }

}

4、什么时候使用super,子类和父类有相同的属性和方法,在子类中调用父类的方法或属性。如果调用的是构造方法,则必须在子类的构造方法中调用且在子类构造方法第一行。

(二)、区分this和super关键字的不同

1、相同点:

关键字都不能在静态方法中使用,可以在实例方法和构造方法中使用。

在调用构造方法时,只能出现在构造方法的第一行,this();和super();

2、不同点

this.name表示当前对象的属性,super.name表示该对象父类中的name属性。

System.out.println(super.name);

this()是调用本类中的构造方法,super()是调用父类中的构造方法。

当父类和子类中都有相同的变量,调用父类变量是super.name,name是子类中的变量。

public class Dog extends Pet{
    String name="旺财";
    int age=2;
    public Dog(){
        this(1);//调用本类的构造方法
        System.out.println(super.name);//二哈
    }
    public Dog(int age){
        System.out.println(name)//旺财
        System.out.println(super.name);//二哈
    }

}

(三)、配置IDEA开发工具。

1、设置中搜索font修改字体大小

2、新建一个project,这里的project相当于eclipse中的一个工作区。找到最下的empty project。

3、新建一个module,选择java模块。

4、在模块里面可以新建各种文件,包括java class文件

知识点1:抽象类

1、类和类之间有共同特征;将这些特征提取出来形成的就是抽象类,因为类本身是不存在的,所以抽象类无法创建对象。

abstract class IdCard extends Card{
    public static void main(String[] args) {
        Card ming= new IdCard();//错误的,无法为抽象类创建对象。
    }
}
abstract class Card{
    public abstract void make();
}

2、抽象类属于引用数据类型。抽象类的语法是

 [修饰符列表] abstract class 类名{
类体;
}
public abstract class Test{
}

3、抽象类是无法创建对象的,是用来被继承的,属于父类。final和abstract是对立的,不能联合使用。

4、抽象类的子类可以是抽象类,抽象类的父类一定是抽象类。抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法可以供子类使用。

知识点2:抽象方法

1、抽象方法表示没有实现的方法,是没有方法体的方法,修饰符列表中有abstract

​ public abstract void doSome();

2、抽象方法必须出现在抽象类中,抽象类中可以没有抽象方法。

public abstract class Card{
    public abstract void make();
}
abstract class Card{
}

3、一个非抽象的类继承抽象的类,需要将抽象方法覆盖/重写。

class IdCard extends Card{
    public void make() {
        System.out.println(666);//方法重写
    }
}
public abstract class Card{
    public abstract void make();
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
permotcat + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

peiy 发表于 2022-1-3 13:28
谢谢楼主的分享
maojiuming 发表于 2022-1-3 13:42
qq8393991739 发表于 2022-1-3 16:16
楼主加油,我也在学,但是很难坚持下来的感觉到啊
13613105079 发表于 2022-1-4 00:32
谢谢分享
huqiang19870721 发表于 2022-1-4 09:59
分享个教程呗,也在学习中
XU-666 发表于 2022-1-21 15:42
楼主怎么好久没有更新了
xmqy 发表于 2022-3-23 13:19
楼主加油
htao0310 发表于 2022-3-28 23:13
不错,要一直坚持下去
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表