一、继承
1、子类继承父类的语法:
class 子类的类名 extends 父类的名字{}
2、子类继承的内容
2.1权限修饰符
- public:可以修饰类、昂发、成员变量、构造方法
- protected:可以修饰方法、成员变量、构造方法
- 默认不写:可以修饰类、方法、成员变量、构造方法
- priv:可以修饰方法、成员变量、构造方法 技巧:类要么是public,要么不写 所有修饰符都能去修饰可以修饰方法、成员变量、构造方法 局部变量基本局没有去加权限修饰符
2、2非私有的属性、方法,构造方法不能被继承
3、类的继承特点
3、1继承的特性和注意事项
- Java里面只支持单继承
- 支持多层级继承(ex:B继承A,C继承B,C就继承A和B)
- 每一个类都有一个直接父类,如果没有看到显示的继承代码,name就隐式继承object——超类、根类
(理解:Java里面所有的类都是object的子类(直接/间接))
二、方法的覆写(方法覆盖、方法重写):Override
注解:
@Override 检测是否是方法覆写
1、意义
主要解决父类方法功能性的不足。当父类的方法不能满足子类需求的时候,对父类方法的功能体进行加强
2、语法
技巧:把父类的方法copy到子类以后再去修改(除开功能体,其余全都一样)
- 子类覆写方法的方法名必须和父类方法名一致
- 子类方法的修饰符权限不小于父类方法的修饰符权限(要么相同,要么大于父类方法的修符权限)
- 子类方法的返回值类型必须与父类相同或者是其子类(比如父类为number返回值,子类可以为Long等数据类型)
- 子类方法的形参列表必须和父类方法形参列表相同
3、方法覆写以后的调用顺序
有限调用子类自己的方法,如果子类没有再去父类里面找,如果父类也没有就报错
4、supper
4、1 supper用法1
可以看成是父类对象,可以使用父类的属性和方法【大多数都是子类和父类有重名的内容,指定要使用父类的】
4.2 supper用法2
- 可以在子类的构造方法里面调用父类的构造方法
- 其实在创建子类对象的时候,父类的构造方法也要执行
- 子类每一个构造方法里面都在隐式去调用父类的无参数构造方法
- 在子类的构造方法里面调用父类构造方法的supper语句,只能写在第一句
三、抽象类(不能new,凡是继承ta,就必须覆写)
1、抽象类
就是由abstract修饰的类
- 抽象类里面拥有的成员:成员变量,普通方法,抽象方法,构造方法 【比普通类多了一个抽象方法】
- 抽象类虽然有构造方法,但是不能在在不创建对象,构造方法默认是protect修饰
- 抽象类里面的抽象方法,子类必须覆写【语法层面强制要求子类覆写指定方法】
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,出现下列即可直接打印储存的内容
3、equals方法
3、1描述
用于比较两个对象里面存储的数据是否相等,直接比较是比较地址值,比较储存的数据需要覆写equals
3、2使用方法
顺序按快捷键Alt+insert-->equals()and hashcode(),出现以下即可