面向对象编程是一种编程范式,旨在通过模拟现实世界的事物(对象)来组织软件设计。OOP主要围绕类(class)和对象(object)来构建程序,并强调以下四个核心概念:封装、继承、多态和抽象。
OOP的核心概念:
封装(Encapsulation):封装指的是将对象的属性和行为封装在类中,并隐藏对象的内部实现细节。类通过公开的接口(如方法)与外部通信,外部无法直接访问对象的内部数据。这种机制可以保护数据的安全性,减少复杂度。
例子:
在这个例子中Amimal类的name和age属性被私有化,只能通过公共的get和set方法访问。这就是封装。
继承(Inheritance):继承允许一个类从另一个类继承属性和方法,从而减少代码重复和提高代码的可维护性。被继承的类称为父类(或超类),继承它的类称为子类。
例子:
这里MaoDa类继承了Amimal类,因此它可以调用name和age方法,同时也可以定义自己的isEyes方法。
多态(Polymorphism):多态性允许相同的函数或方法在不同的类中具有不同的行为。方法的多态性可以通过方法重写(子类提供与父类同名但不同实现的方法)或方法重载(同一类中具有相同名称但不同参数的方法)来实现。
例子:
通过多态根据具体的对象类型表现出不同的行为,接口也具有多态的属性。
抽象(Abstraction):抽象指的是通过接口或抽象类定义对象的通用行为,而忽略具体实现细节。抽象允许类只提供必要的功能接口,隐藏实现的复杂性。
例子:
TestService类是抽象的,定义了一个抽象的msg方法,而TestServiceImpe类提供了该方法的具体实现。