UML时序图

Java基础 - 图1
通过UML类图可以将类之间的所有关系(泛化、实现、关联、聚合、组合、依赖)都能具体的体现出来。
<>表示是一个抽象类
类和类的实现关系,用带空心箭头的虚线表示
继承关系,即类和类的泛化关系,用带空心箭头的实线表示
发动机和小车,类和类之间的组合关系,用带实心菱形箭头的实线表示
学生和班级,类与类之间的聚合关系,用带空心菱形箭头的实线表示
学生和身份证之间是关联关系,用实线表示
学生和小车,之间是依赖关系,用带箭头的虚线表示

接口和抽象类有什么共同点和区别?

共同点:

  • 都不能被实例化
  • 都可以包含抽象方法
  • 都可以有默认实现的方法

区别:

  • 一个类可以实现多个接口,但是只能继承一个抽象类
  • 抽象类可以有默认实现的方法,不一定全是抽象方法,而接口(在Java 8之后)才可以用default定义默认实现的方法,接口是一种特殊的抽象类
  • 接口中的成员变量都是public final static,不可被修改而且必须有初始值,抽象类的变量默认是default,可以被子类重新定义,也可以被重新赋值。