#Java三大特性:
- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。
class 父类 {
public void print(){...}
}
class 子类 extends 父类 {
public void print(){...}
}
- 封装:是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。常见的权限修饰符就是Public,Private,Protected
- 多态性:多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。**多态存在的三个必要条件:继承、重写、父类引用指向子类对象。**一般分为两种模式:
1.方法的多态性
1.1 方法的重载:重载是指同一个类中有很多个同名方法,但这些方法的参数列表是不相同的,因此编译时就可以确定调用哪个方法,这是一种编译时的多态。
1.2 方法的覆盖是指子类函数覆盖其父类函数。覆盖一个方法并对其重写,以达到不同的作用。方法重写实现的是运行时的多态性。
2.对象的多态性
2.1对象向上转型:父类 父类实例 = new 子类实例;(自动完成转换)
2.2对象向下转型:子类 子类实例 = (子类)父类实例;(强制转换)
在看是否能转型的时候我们可以用(instanceof 关键字来判断)
(这里转载了小弟季义钦对五大原则的描述)
#Java五大原则
(1)单一职责原则(Single-Resposibility Principle)
一个类应该仅有一个引起它变化的原因
(2)开放封闭原则(Open-Closed principle)
对扩展是开放的,对更改是封闭的
(3)里氏替换原则(Liskov-Substituion Principle)
子类可以替换父类并且出现在父类能够出现的任何地方,贯彻GOF倡导的面向接口编程
(4)依赖倒置原则(Dependecy-Inversion Principle)
传统的结构化编程中,最上层的模块通常都要依赖下面的子模块来实现,也称为高层依赖低层
(5)ISP 接口隔离原则(Interface-Segregation Principle)
使用多个专门的接口比使用单个接口要好的多