主要以 Java 为代表分析面向对象语言的特点,此外也有 C++ 和 Python 等语言。
# 概述
面向对象语言的三大特点是:
- 继承
- 封装
- 多态
上述特点是面向对象语言的特点,而不是面向对象的特点。
在面向对象中,对象间的基本关系包括:
- 关联:一个类使用了另一个类的实例,如
Customer
和Address
类。 - 聚合:与关联类似,但对象存在包含关系,如
Computer
和keyboard
类。 - 组合:耦合度更强的聚合关系。“整体” 对象决定 “部分” 对象的生命周期。
- 泛化:继承关系中,父类是子类的泛化。
- 依赖:一类的方法中借用了其它类作为参数。
- 实现:类重载接口。
# 类 & 对象
类是对象的蓝图,对象是类概念的具体实现。对象的状态由属性确定,对象的行为由方法确定。
# 实例化
# 继承
Java 的面向对象是基于类和继承的面向对象,C++ 和 Python 也属于此类面向对象。此外,还有基于原型的面向对象,代表是 JavaScript.
# 特点
# 多重继承
继承关系是可复合的,即存在多重继承。例如
public class A { | |
// private variables | |
private int id; | |
private String name; | |
// public methods | |
public A(String name, int id) { | |
this.name = name; | |
this.id = id; | |
} | |
} |
public class B extends A { | |
public B(String name, int id) { | |
super(name, id); | |
} | |
} |
public class C extends B { | |
public C(String name, int id) { | |
super(name, id); | |
} | |
} |