继承
1、继承:共性抽取一个父类,让子类继承,可以继承父类的属性、方法,也可以重写父类的方法(行为)
1、格式 public class 子类 extends 父类{
}
下面就表示一个学生类继承了人类的共有特征
public class Student extends Person {
}
public class Student extends Person {
//属性
String name;
int age;
String sex;
String level;
public class Person {
String name;
int age;
String sex;
从上面可以看出学生类拥有人类的共有属性,所以共有的属性,学生类可以不写。即学生类是子类,人类是父类。
2、例如:父类的方法
public void work(){
System.out.println("每个人不同,工作不同");
}
子类可以选择继承父类的方法,也可以自己选择方法;即重写。如下图:
public void work(){
System.out.println(this.name + "好好学习,天天向上");
}
2、重载与重写的区别
重载:
1、在一个类中
2、方法名相同
3、参数(类型不行,个数不同)
重写规则:
1、方法名和参数必须一致
2、注解@Override
重写 检测是否重写
3、返回值类型必须【小于等于】父类方法的返回值(如:object>int等);
4、权限必须【大于等于】父类方法的权限
a. public
公开的公共的,最大权限
b. protrcted
受保护的
c. (default)
默认权限
d. private
私有的
3、继承的先后顺序
继承的时候,先查找本类,然后查继承链,如果都没有就编译报错。查询继承链,使用超类中的属性。
1、java
语言的继承属于单继承,虽然不存在多继承,但是存在接口interface
连接。如下:
public class Student extends Person implements Test{
}
2、所有没有继承链的类都会默认去继承Object
继承关系中的类加载顺序:先父类后子类,先静态(属于整个类的,范围比较大)后成员(new对象的成员属性)
4、super关键字的使用
1、加载构造器
a、子类的构造器会默认加载父类的构造器,通过super()
;即在子类调用无参构造器的时候,也会去调用父类无参构造器。
b、构造器只能调用一次,不可调用多次
c、调用构造器的行为必须写在第一行
2、调用父类成员变量super
.变量
3、调用父类成员方法super
.方法()
5、this
关键字的使用
1、加载构造器
2、调用自己的成员变量this
.变量
3、调用自己的成员方法this
.方法()
6、总结
1、java
语言只支持单继承
2、java
语言支持多级继承
3、父类可以有多个子类,子类之间相互之间是兄弟类