面向对象的四大特性

面向对象主要有四大特性

  • 抽象
    忽略一个主题中与当前无关的东西,专注的注意与当前目标有关的方面。(就是把现实世界中的某一类东西提取出来,用程序代码表示,抽象出来的一般叫做类或接口)。抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一个数据抽象,一个过程抽象。

    数据抽象–>表示世界中一类事务的特性,就是事务的属性,比如鸟有翅膀、羽毛等(类的属性)
    过程抽象–>表示世界中一类事务的行为,比如鸟会飞、会叫(类的方法)

  • 封装
    封装就是把数据和过程包围起来,对数据的访问只能通过待定的页面。如私有变量,用set和get方法获取

  • 继承
    一种联结类的层次模型,并且鼓舞类的重用,提供一种明确表达共性的方法。对象的一个新类可以重现有的类中派生,这个过程称为类继承。新类 继承的原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类)。派生类可以从它的父类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。因此可以说,继承为了重用父类代码,同时为实现多态性作准备。

  • 多态
    多态是指允许不同类的对象对同一消息做出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题,总的来说,方法的重写、重载与动态链接构成多态性。java引入多态的概念原因之一就是弥补类的单继承带来的功能不足。
    动态链接–>对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将调用子类中的这个方法,就是动态链接。

注意继承与重载:子类与父类的关系,重载方法的调节问题

子类对象可以直接当成父类对象用,但反过来不行,比如:人是父类,学生是人的子类,所以学生对象一定具备人对象的属性,但是人对象 就未必具有学生对象的特性,但是子类对象当作父类来用,将失去子类所有特性,只保留与父类同名的属性和方法,此时可以对父类进行重写

一个类中如果定义了重载的方法,则系统在调用方法是,会根据参数的类型自动选择调用适合的方法

猜你喜欢

转载自blog.csdn.net/weixin_44358457/article/details/86533983
今日推荐