Javase-08-02-继承&覆写&抽象类&object

53 阅读4分钟

一、继承

1、子类继承父类的语法:

class 子类的类名 extends 父类的名字{}

2、子类继承的内容

2.1权限修饰符

  • public:可以修饰类、昂发、成员变量、构造方法
  • protected:可以修饰方法、成员变量、构造方法
  • 默认不写:可以修饰类、方法、成员变量、构造方法
  • priv:可以修饰方法、成员变量、构造方法 技巧:类要么是public,要么不写 所有修饰符都能去修饰可以修饰方法、成员变量、构造方法 局部变量基本局没有去加权限修饰符

2、2非私有的属性、方法,构造方法不能被继承

3、类的继承特点

3、1继承的特性和注意事项

  • Java里面只支持单继承
  • 支持多层级继承(ex:B继承A,C继承B,C就继承A和B)

image.png

  • 每一个类都有一个直接父类,如果没有看到显示的继承代码,name就隐式继承object——超类、根类
    (理解:Java里面所有的类都是object的子类(直接/间接))

image.png

二、方法的覆写(方法覆盖、方法重写):Override

注解:
@Override 检测是否是方法覆写

image.png

1、意义

主要解决父类方法功能性的不足。当父类的方法不能满足子类需求的时候,对父类方法的功能体进行加强

2、语法

技巧:把父类的方法copy到子类以后再去修改(除开功能体,其余全都一样)

  • 子类覆写方法的方法名必须和父类方法名一致
  • 子类方法的修饰符权限不小于父类方法的修饰符权限(要么相同,要么大于父类方法的修符权限)
  • 子类方法的返回值类型必须与父类相同或者是其子类(比如父类为number返回值,子类可以为Long等数据类型)
  • 子类方法的形参列表必须和父类方法形参列表相同

3、方法覆写以后的调用顺序

有限调用子类自己的方法,如果子类没有再去父类里面找,如果父类也没有就报错

4、supper

4、1 supper用法1

可以看成是父类对象,可以使用父类的属性和方法【大多数都是子类和父类有重名的内容,指定要使用父类的】

image.png

4.2 supper用法2

  • 可以在子类的构造方法里面调用父类的构造方法
  • 其实在创建子类对象的时候,父类的构造方法也要执行
  • 子类每一个构造方法里面都在隐式去调用父类的无参数构造方法
  • 在子类的构造方法里面调用父类构造方法的supper语句,只能写在第一句

三、抽象类(不能new,凡是继承ta,就必须覆写)

1、抽象类

就是由abstract修饰的类

  • 抽象类里面拥有的成员:成员变量,普通方法,抽象方法,构造方法 【比普通类多了一个抽象方法】
  • 抽象类虽然有构造方法,但是不能在在不创建对象,构造方法默认是protect修饰

image.png

  • 抽象类里面的抽象方法,子类必须覆写【语法层面强制要求子类覆写指定方法】

2、抽象方法

  • 由abstract修饰方法并没有方法体
  • 抽象方法的主要作用是用来去定义标准,不去定义实现。

四、object

1、obje类中方法

方法描述
Class<?> getClass()返回此对象的的运行时类。
int hashCode()返回对象的哈希码值。
String toString()返回对象的字符串表示形式。
boolean equals(Object obj)比较两个对象是否相等。

2、toString方法

2、1意义

为了使打印出的是对象里储存的数据,而不是地址值,就需要覆写toString

2、2使用方法

顺序按快捷键Alt+insert-->toString,出现下列即可直接打印储存的内容

image.png

3、equals方法

3、1描述

用于比较两个对象里面存储的数据是否相等,直接比较是比较地址值,比较储存的数据需要覆写equals

3、2使用方法

顺序按快捷键Alt+insert-->equals()and hashcode(),出现以下即可

image.png