3.继承super+Object类+String类01

一.继承

子类根据不同访问属性(public,private…)继承父类的特性和方法

  • 使用extends关键字,使一个类继承另一个类
  • 一个子类只能有一个父类,单继承
  • 被继承的类|父类----超类|根类
  • 继承类|子类-----派生类
  • 一个类默认没有申明extends,默认申明Object类
  1. public成员:子类继承使用
  2. default成员:同包内子类访问
  3. protected成员: 不同包和同包子类都可以访问成员
  4. private成员:子类无法访问

二.重写Override

子类重写父类的方法,重写的方法与父类方法的(方法名,返回类型,参数列表一致),隐藏继承的父类的方法(覆盖)

  1. 能被子类继承的方法,就能override;
  2. override后的方法归子类专有
  3. 子类再调用这个方法就是重写后的方法;

1.多态性

多态性体现: 重写(子类和父类产生各自的不同功能方法)和重载(根据参数不同调用不同的相同名子构造方法)

不同类对同一信息的不同反馈

三.super关键字

主要调用父类的成员和方法,使用时起第一行

1.访问父类

  • 访问父类成员变量

    super.成员变量

  • 调用父类方法

    super.方法名()

  • 调用父类构造方法

    super(参数列表)-----参数列表对应父类中构造方法的参数列表

    super()表示调用父类不带参的构造方法

四.向上转型

父类的引用变量可以指向子类对象

Father child = new Child( );//child是父类的引用变量,new child是引用变量指向的子类对象
//引用变量调用的是父类的重写Override后的方法

五.Object类

是所有类的根类/超类,每个类都是由Object扩展而来,拥有Object类所有方法

1.==和equals()方法的区别:

  • == 比较地址 && 比较赋值;(都满足才true)
  • equals()先比较地址是否相同 || 再比较赋值是否相同;(任意满足true)

equals()方法重写一般与hashcode一起重写,在类中重写:

快捷键生成

    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return id == student.id && age == student.age;
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, age);
    }

2.常量池

String字符串是final修饰的常量,不可改变;

3.Integer类

-128~127

4.重写hashCode

5.重写toString()方法

往往用于输出对象时

Object 类提供的toString方法总是返回该对象实现类的类名 + @ +hashCode值

@Override
public String toString() {
return “Employee [empId=” + empId + “, empName=” + empName + “, salary=” + salary + “]”;
}

6.instanceof关键字

检查一个对象是否是一个类的实例或者是其子类的实例。

对象名 instanceof 类名,//输出布尔值。

六.字符串补充

1.final关键字

表示不可改变的常量

  1. final类

    • 不能被继承无子类
    • 内部方法无法被覆盖
    • 内部所有方法都是隐藏的
  2. final方法

    无法被重写,只能实现一次

2.final默认修饰的String

不能被继承和改变

3.StringBuffer类和StringBuilder类

  1. StringBuffer类
构造方法说明
StringBuffer()构造一个没有字符的字符串缓冲区,初始容量为16个字符
StringBuffer(CharSequence seq)构造一个包含与指定的相同字符的字符串缓冲区 CharSequence
StringBuffer(int capacity)构造一个没有字符的字符串缓冲区和指定的初始容量。
StringBuffer(String str)构造一个初始化为指定字符串内容的字符串缓冲区
方法说明
append(String str)将指定的字符串附加到此字符序列。
capacity()返回当前容量。
deleteCharAt(int index)删除 char在这个序列中的指定位置。
insert(int offset, char c)在此序列中插入 char参数的字符串表示形式。
  1. StringBuffer扩容(扩展)
StringStringBufferStringBuilder
执行速度最差其次最高
线程安全线程安全线程安全线程不安全
使用场景少量字符串操作多线程环境下的大量操作单线程环境下的大量操作
其次最高
线程安全线程安全线程安全线程不安全
使用场景少量字符串操作多线程环境下的大量操作单线程环境下的大量操作
  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值