一、继承
-
特点:
- 一种类与类之间的关系
- 使用已存在的类的定义作为基础建立新类
- 新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类
- 父类无法访问子类中的特有成员
- 父类的构造方法无法被继承
-
代码实现
父类:
class Animal{ //公共属性和方法 }
子类:
class Dog extends Animal{//只能继承一个父类 //子类特有的属性和方法 } class Cat extends Animal{ }
二、重写
-
重载(在同一个类中)
- 方法名相同,参数列表不同(参数顺序,个数,类型之中任何一个不同)
- 返回值,访问修饰符不做限制
-
重写(在有继承关系的子类中)
-
语法规则
- 返回值类型
- 方法名
- 参数类型,顺序和个数
以上3点都要与父类相同
- 返回参数的限定符的范围必须大于或者等于之前的返回值范围
- 父类的构造方法不允许被重写
-
改的就是父类方法的逻辑
-
父类的属性(变量)也可以重写
-
子类默认调用父类的无参构造
-
三、super
-
作用
使用super来引用父类的成分,用this来引用当前对象
super与this不能并存
-
使用方法
-
使用super()调用父类允许被访问的其他构造方法(如果不想默认调用父类的无参构造方法),但必须放在子类的构造方法的第一行
-
访问父类的成员方法
super.print();
-
访问父类的成员属性
super.name;
-
四、final
final +类;//表示该类没有子类
final +方法;//该方法不能被重写,但是可以正常被子类使用
final +方法内的局部变量;//一旦赋值后不允许被修改,只要在具体被使用之前进行赋值即可
final +类当中的成员属性;//除了声明的时候初始化以外,只能在构造方法或者构造代码块内初始化
static final+变量;//表示全局的不允许被修改的变量
- 注意事项
- final不能用来修饰构造方法
五、Object类(所有类的父类)
- 类中经常被重写的方法
- equals()
-
当继承Object中的equals方法时,比较的是两个引用是否指向(同一个对象)(即地址是否相同)-------java中的"=="也是比的地址
-
当继承String中的equals方法时,比较的是两个字符串的(内容)是否相等
- toString()
-
输出对象名时,默认会直接调用类中的toString()方法,输出对象的字符串表示形式(类型信息+@+地址信息)
Animal one=new Animal();
//下面两条语句的输出结果相同
System.out.println(one.toString());
System.out.println(one);