一、目标
- 理解继承的作用
- 会使用继承
- 掌握super关键字的使用
二、继承的优势
- 减少代码量
- 方便修改代码
三、继承的使用
- 编写父类
[访问修饰符] class Pet { //公共的属性和方法 }
- 编写子类,继承父类
[访问修饰符] class Dog extends Pet { //子类特有的属性和方法 }
继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类,但是可以多个子类继承一个父类。
一、子类访问父类成员
访问父类构造方法
super(); super(name);
访问父类属性
super.name;
访问父类方法
super.print();
二、super小结
super关键字来访问父类的成员
super只能出现在子类的方法和构造方法中
super调用构造方法时,只能是第一句
super不能访问父类的private成员
三、继承条件下的构造方法
- 继承条件下构造方法的调用规则
- 子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法
- 系统默认调用父类的无参构造方法
- 子类构造方法通过super显式调用父类的有参构造方法 执行父类相应构造方法,而不执行父类无参构造方法
- 子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则
四、子类继承父类的什么
- 继承public修饰的属性和方法,不管子类和父类是否在同一个包里
- 继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里
不能继承什么
- private成员
- 子类与父类不在同包, 使用默认访问权限的成员
- 构造方法(可以用super调用 不能继承)
五、何时使用继承
继承与真实世界类似 只要说“猫是哺乳动物”,
猫的很多属性、行为就 不言自明了
藏獒是一种狗
符合is-a关系的设计使用继承
- 继承是代码重用的一种方式
四、总结
继承有何好处? 减少代码量
如何实现继承? 将子类共同的属性放到父类中
然后各个子类调用父类的方法和属性