三大基本特性

1. 封装

封装就是隐藏对象的属性和实现细节,仅对外开放接口,增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过对外开放的接口,以特定的访问权限来调用对象的属性

2. 继承

Java是单继承模式,继承是面向对象编程的核心,因为它允许创建分等级层次的类,这也符合生物界门纲目科属种划分概念。万物皆为对象,对象皆有类

3. 多态

多态分为编译时多态和运行时多态。
其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性,例如动物吃东西:
熊猫类继承动物类,并实现吃的方法,是吃竹子。
灰熊类继承动物类,并实现吃的方法,是吃鱼。

public class Animal {
	public void eat() {
			
	}
}
class AiluropodaMelanoleuca extends Animal {
	public void eat (){
		System.out.println("熊猫吃竹子了.");
	}
}
class UrsusArctos extends Animal {
	public void eat (){
		System.out.println("大灰熊吃鱼了.");
	}    	
}
多态的优点
  1. 消除类型之间的耦合关系
  2. 可替换性
  3. 可扩充性
  4. 接口性
  5. 灵活性
  6. 简化性
多态存在的三个必要条件
  1. 继承
  2. 重写
  3. 父类引用指向子类对象

五大基本原则

1. 单一职责原则(SRP)

一个类应该有且只有一个去改变它的理由,这意味着一个类应该只有一项工作。

2. 开放封闭原则(OCP)

对象或实体应该对扩展开放,对修改封闭。

3. 里氏替换原则(LSP)

在对象 x 为类型 T 时 q(x) 成立,那么当 S 是 T 的子类时,对象 y 为类型 S 时 q(y) 也应成立。(即对父类的调用同样适用于子类)

4. 依赖倒置原则(DIP)

高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。具体实现应该依赖于抽象,而不是抽象依赖于实现。

5. 接口隔离原则(ISP)

不应强迫客户端实现一个它用不上的接口,或是说客户端不应该被迫依赖它们不使用的方法,使用多个专门的接口比使用单个接口要好的多!