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 + "好好学习,天天向上"); }重载:
1、在一个类中
2、方法名相同
3、参数(类型不行,个数不同)
重写规则:
1、方法名和参数必须一致
2、注解@Override重写 检测是否重写
3、返回值类型必须【小于等于】父类方法的返回值(如:object>int等);
4、权限必须【大于等于】父类方法的权限
a. public公开的公共的,最大权限
b. protrcted受保护的
c. (default)默认权限
d. private私有的
继承的时候,先查找本类,然后查继承链,如果都没有就编译报错。查询继承链,使用超类中的属性。
1、java语言的继承属于单继承,虽然不存在多继承,但是存在接口interface连接。如下:
public class Student extends Person implements Test{ }2、所有没有继承链的类都会默认去继承Object继承关系中的类加载顺序:先父类后子类,先静态(属于整个类的,范围比较大)后成员(new对象的成员属性)
1、加载构造器
a、子类的构造器会默认加载父类的构造器,通过super();即在子类调用无参构造器的时候,也会去调用父类无参构造器。
b、构造器只能调用一次,不可调用多次
c、调用构造器的行为必须写在第一行
2、调用父类成员变量super.变量
3、调用父类成员方法super.方法()
1、加载构造器
2、调用自己的成员变量this.变量
3、调用自己的成员方法this.方法()
1、java语言只支持单继承
2、java语言支持多级继承
3、父类可以有多个子类,子类之间相互之间是兄弟类