这节课重点学习了继承,关键词 extends,相比前两节课,感觉轻松一点。 父类也叫基类,子类也叫派生类
复用类1. 定义:重复使用的类2. 表现形式: ① 组合:新建的类包含其它现有的类 1) 汽车(SedanCar、Truck) a. 车窗(Window) b. 车门(Door) c. 车轮(Wheel) d. 车身(Body) ② 继承:新建的类承自于旧的类 1) 语法: java中所有的类都直接或间接继承Object i. 直接 Obejct->Test ii. 间接 Obejct->Test->AA 2) 格式:访问修饰词 class类名extends父类(基类) 3) 特点: a) 父类的public属性可以直接给子类使用 b) 子类与父类拥有同名属性,使用的是子类的属性(就近原则/隐藏) c) 子类与父类拥有相同方法,使用的是子类的方法(就近原则/覆盖) d) 子类与父类拥有相同方法,但子类的方法参数与父类不同(重载) e) 同名方法,子类方法的修饰词必须大于父类3. 继承时 protected 不写 同包下的子类 可用 可用 跨包下的子类 可用 不可用4. super关键词 ① 调用构造器 1) 构造器不被继承 2) 默认调用父类缺省构造器 3) 调用构造器要写在代码首行 ② 调用属性 ③ 调用方法5. 继承时初始化顺序 ① 无继承:静态---非静态--构造器 ② 继承:父类静态-子类静态-父类非静态-父类构造器-子类非静态-子类构造器6. final关键词 ① 属性 1) 被final修饰过的属性称为常量 2) 被final修饰过的属性一定要赋初值 3) 被final修饰过的属性不能修改值 4) 被final修饰过的对象属性不能被重新实例化,但对象属性中的值可以被修改 5) final属性可以用构造器赋初值,但是必须所有的构造器都给它赋初值; 6) 静态空白final属性不能再构造器赋初值 ② 方法 1) 被final修饰过的方法不能被子类重写 ③ 类 1) 被final修饰过的类不可以被继承复制代码
作业:编写一个基类Person类,子类Student类,使用带参数的构造器Student(int id)对域id初始化,并把参数id通过构造器传给基类构造器Person(int id)
public class Person { int id; int age; double weght; public Person(int id){ this.id=id; }}复制代码
public class Student extends Person { public Student(int id){ super(id); } public static void main(String[] args) { Student stu=new Student(1); }}复制代码