面对对象的三大特征之一封装
封装是吧过程和数据封装起来避免外界直接访问,外界只能通过已定义的接口实现对数据的访问。封装是一种信息隐藏技术,在java中通过在关键字private实现封装。简单地说,封装实际上是将类的数据隐藏起来,并使用方法来控制用户对类的修改和访问数据的程度。
封装的优点在于它可以隐藏私有的数据,让使用者只能通过公共的访问方法来访问这些字段。只需要在这些方法中增加逻辑控制,限制对数据的不合理访问,就能方便数据检查,有利于保护对象信息的完整性。另外,封装还便于修改代码,提高代码的可维护性。通常为了实现良好的封装,需要从两个方面考虑:把字段和实现细节隐藏起来,不允许外部直接访问;把访问暴露出来,让方法控制这些成员变量方法进行安全的访问和操作。
2面对对象的三大特征之一继承
可以说继承是面向对象最显著的一个特性。java继承是一种使用已存在的类的定义作为基础去建立新类的技术,新类的定义可以增加心得数据或新的功能,也可以用弗雷德功能。这种技术使用得复用以前的代码非常容易,能够大大缩短开发周期,降低费用。简单来说,继承就是子类继承父类的特征和行为,使得子类对象具有弗雷德特征,或子类从父类集成方法,使得子类具有弗雷德相同行为。
3面向对象的三大特征之一多态
在java中有两种类型的多态性:编译时的多态性和运行时的多态性。我们可以通过方法覆盖和方法重载在java中执行多态性。多态允许不同类的对象对同意消息做出相应,即同意消息可以根据发送对象的不同而采用不同的行为方式。
覆盖发生在父类和子类之间。当子类发现继承自弗雷德成员变量或方法不满足自己的要求是,就会对其重新定义。当子类的成员变量与弗雷德成员变量同名时(声明的类型可以不同),子类的成员便令会隐藏父类的成员变量;当子类的方法与弗雷德方法具有相同的名字、参数列表、返回值类型时,子类的方法就会重写父类的方法。方法的覆盖是动态多态性的表现。
4.抽象类和方法
在抽象类中包含一般方法和抽象方法。抽象方法的定义与一般方法不同,抽象方法在方法头后直接跟分号,二一般方法含有一大括号矿主的方法体。所有的抽象方法必须存在与抽象类中,这些方法只有方法头的生命,用一个分号来代替方法提的定义,即只定义成员方法的接口形式,而没有具体操作。只有派生类对抽象成员方法的重定义才能真正实现与该派生类相关的操作。在各自类继承了父类的抽象方法之后,再分别用不同的语句和方法体来重新定义他,形成若干个名字相同、返回值的相同、参数列表相同、目的一直但是具体实现有一定差别的方法。抽象类中定义抽象方法的目的是实现一个接口,即所有的子类对外都呈现一个相同名字的方法。
5.接口的概念与定义
java接口时一系列方法的声明,是一些方法特征的集合。一个接口只有方法的特征而没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。
也就是说,接口时抽象方法的集合。接口通常用关键字interface来声明。
6.接口的实现
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就被声明为抽象类。
当有两个及以上的类拥有相同的方法,但是实现功能不一样时,可以定义一个接口将这个方法提炼出来,在需要使用该方法的类中去实现,从而免除多个类定义系统的方法。
7.抽象类和接口的区别
抽象类 | 接口 |
关键字abstract | 关键字interface |
有构造方法 | 没有构造方法 |
可以有非抽象方法 | 只有抽象方法 |
可以有变量 | 只能时常量 |
单继承 | 多继承 |
实现类只能继承一个抽象类 | 实现类可以实现多个接口 |