继承的格式;
通过extends关键字可以实现类与类的继承 class 子类类名 extends 父类类名 {} 被继承的这个类称为父类,基类或者超类 继承的这个类称为子类或者派生类继承的特点: 1.通过extends关键字实现,类与类之间建立了联系 违背了高内聚,低耦合的原则 2.继承的本质就是对多个类的共性的代码的抽取 3.类是对多个对象的抽象,继承是对某一批类的抽象。 4.继承是一把双刃剑,慎用
继承的特点: 1.通过extends关键字实现,类与类之间建立了联系 违背了高内聚,低耦合的原则 2.继承的本质就是对多个类的共性的代码的抽取 3.类是对多个对象的抽象,继承是对某一批类的抽象。 4.继承是一把双刃剑,慎用
设计原则; 高内聚,低耦合 对扩展开放,多修改关闭 面向对象思想
如何使用继承? 1.一般都是在写完代码之后,观察发现你的代码出现了重复,这个时候抽取重复代码到父类中即可 2.当设计某个类非常复杂的时候,可以使用继承 继承的注意事项: 1.单一继承性 2.支持多层继承 3.如果父类使用priavate修饰成员,子类不能够继承 4.如果一个子类继承了父类的所有方法,还可以有自己的方法 5.当子类属性和父类属性重名的时候,子类会覆盖父类继承的同名属性 6.子类不会继承父类的构造方法 使用继承的步骤; 1.先书写所有的子类 2.观察多个子类是否存在共性代码 3.将共性代码抽取到父类中 4.子类继承父类,将共性代码删除 5.验证是否满足 A is a B关系 A is a B 继承 A has a B 组合 : A类有B类的控制权 在这里插入代码片package com.extendsdemo;
import javax.swing.JFrame;
public class ExtendsDemo01 { public static void main(String[] args) { PrimaryStudent ps = new PrimaryStudent();
XyrFrame frame = new XyrFrame(); frame.setSize(100, 200); frame.setLocationRelativeTo(null); frame.setTitle("植物大战僵尸"); frame.setVisible(true); ps.playMobile(); }}
class Dog {
}
class Teacher { Dog dog; }
class XyrFrame extends JFrame { }
class Person extends Object {
}
class Student extends Person { public Student() {}
String name = "World"; int age; private double money; double height; public void payMoney(double money) { this.money = money; }}
class PrimaryStudent extends Student { public PrimaryStudent() {} String name = “Hello”; public void playMobile () { System.out.println(“MiddleStudent.playMobile()” + name); } }
class MiddleStudent extends Student { public void playGame() { System.out.println(“MiddleStudent.playGame()”); } }
class BigStudent extends Student{ public void sleep() { System.out.println(“BigStudent.sleep()”); } }