继承:用于描述类A是类B的关系。。关键字:extends
A有B,A是类,B是A的属性
A能B,A是类,B是A的方法
A是B,A是类,B是类,A继承B,A是B的子类,B是A的父类,B派生A
若类A继承类B,类A中将直接拥有类B以及所有祖先类的所有公共资源和受保护的资源
一个类,可以有多个子类;一个子类,仅有一个父类
若类A继承类B,类B继承类C,则B是A的父类,C是A的祖先类,A是B的子类,A是C的子孙类
类A和类B是否处于一条继承链,从类A开始,依次往父类方向寻找,是否能找到类B
若在一个继承体系中,两个类不在一条继承链,两者完全独立
继承可以提取不同类中的公共部分(因此有了抽象)
继承的特性:
1.传递性:父类资源总是可以在子类或子孙类中使用
2.单根性:一个子类有且只有一个父类,如果一个类没有手动书写父类,该父类默认为Object
所有类最终都继承于Object,Object是所有类的父类(根类)
继承中的构造函数:
若父类拥有有参构造函数,子类必须书写构造函数,去调用父类的构造函数
创建一个类的对象时,会先调用该类父类的构造函数,然后再调用子类
super关键字:指代父类 this关键字,只带当前对象
重写override:在子类中使用完全相同的方法签名以覆盖父类的方法
重载overload:同一个类中出现多个同名方法
Object中的方法:
1. boolean equals(Object obj) 该方法是用于比较两个对象是否相等
默认实现:比较两个对象的地址是否相同
2. String toString() 该方法得到当前对象的字符串格式
默认实现:将当前对象的地址使用某种算法(hash算法)生成一个字符串,然后在该字符串前拼接类名,中间使用@分割
final关键字
1.修饰变量:常量,数据不可更改
2.修饰属性:常量,数据不可更改
3.修饰类:最终类,不可被继承
4.修饰方法:最终方法,不可被重写
A有B,A是类,B是A的属性
A能B,A是类,B是A的方法
A是B,A是类,B是类,A继承B,A是B的子类,B是A的父类,B派生A
若类A继承类B,代码书写如下:
public class B{}
public class A extends B{}若类A继承类B,类A中将直接拥有类B以及所有祖先类的所有公共资源和受保护的资源
一个类,可以有多个子类;一个子类,仅有一个父类
若类A继承类B,类B继承类C,则B是A的父类,C是A的祖先类,A是B的子类,A是C的子孙类
类A和类B是否处于一条继承链,从类A开始,依次往父类方向寻找,是否能找到类B
若在一个继承体系中,两个类不在一条继承链,两者完全独立
继承可以提取不同类中的公共部分(因此有了抽象)
继承的特性:
1.传递性:父类资源总是可以在子类或子孙类中使用
2.单根性:一个子类有且只有一个父类,如果一个类没有手动书写父类,该父类默认为Object
所有类最终都继承于Object,Object是所有类的父类(根类)
继承中的构造函数:
若父类拥有有参构造函数,子类必须书写构造函数,去调用父类的构造函数
创建一个类的对象时,会先调用该类父类的构造函数,然后再调用子类
super关键字:指代父类 this关键字,只带当前对象
重写override:在子类中使用完全相同的方法签名以覆盖父类的方法
重载overload:同一个类中出现多个同名方法
Object中的方法:
1. boolean equals(Object obj) 该方法是用于比较两个对象是否相等
默认实现:比较两个对象的地址是否相同
2. String toString() 该方法得到当前对象的字符串格式
默认实现:将当前对象的地址使用某种算法(hash算法)生成一个字符串,然后在该字符串前拼接类名,中间使用@分割
final关键字
1.修饰变量:常量,数据不可更改
2.修饰属性:常量,数据不可更改
3.修饰类:最终类,不可被继承
4.修饰方法:最终方法,不可被重写