Java面向对象

目录

面向过程与面向对象

 类和对象

 面向对象三大特征

封装

继承

多态

抽象类

接口


面向过程与面向对象

  • 面向过程:分析出解决问题所需要的步骤,然后把步骤一步一步实现,面向过程直接关注流程。
  • 面向对象:以分类的方式进行思考和解决问题,先对整体关系作出分类,然后根据不同的类深入细节的处理。面向对象的思想符合人类的认知习惯。
面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观 上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。 面向对象如果离开了面向过程,就无法实现真正的落地, 成为无源之水。但面向过程简单直接,容易理解,面向对象更为复杂,模块化程度更高。从开发角度来看,面向对象比面向过程复杂,从维护和扩展功能的角度上来看,面向对象更容易操作。

 类和对象

  是一个描述一类事物的属性和行为的集合,表示一个客观世界某类群体的一些基本特征抽象。对象是使用这个类模板创建出来的具体存在的实例。

现实生活中现有对象后有类,而编程时先设计类后创建对象。

 面向对象三大特征

封装

封装是利用各种访问权限修饰符将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,方便修改实现和加入控制语句。

继承

  • 继承是面向对象程序设计不可缺少的设计思想,是实现代码可重用的根基,是提高代码可扩展性的主要途径。继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为,并能扩展新的能力。在Java中使用extends关键字表示继承关系,一个类只能有一个直接父类,继承之后子类可以调用父类的所有非私有属性和非私有方法。
  • 继承具有传递性,当C类从B类继承,B类又从A类继承,那么C类就具有B类和A类的所有非私有属性和非私有方法。当一个没有继承任何一个类时,jvm会默认让类继承Object类,Object是 java为所有类提供的基类。
  • 继承中的构造方法:子类构造方法会先调用父类构造方法,使用super关键字调用父类任意一个构造方法,必须写在构造方法的第一行。如果子类的构造方法中没有显式的调用父类构造方法,则系统默认调用父类无参数的构造方法。

多态

  • 多态就是同一种事物在不同时刻表现不同的状态。

实现多态的三个必要条件:

  • 要有继承(包括接口的实现)(前提条件)
  • 要有重写(前提条件)
  • 父类引用指向子类对象(最终执行的方法是子类中自己的方法) 
  • 多态环境下对成员方法的调用编译看左边,运行看右边
  •  多态环境下访问静态成员方法、对成员变量的调用编译与运行都看等号左边

注意:变量不存在被子类覆盖这一说法,只有方法存在重写 

  • 方法参数具有多态性,可以提高代码的扩展性
  • 向上转型:子类转为父类型,这样父类型就可以表示任意的子类对象。使用多态语法将子类类型都上升为父类类型,可以使用一个父类类型表示任意子类对象,使得程序扩展性更加良好。但是子类类型上升为父类类型后不能访问子类中特有的方法(可将父类类型转换为子类型解决该问题),需判断是否为特定类型。

抽象类

  • 抽象类是一个没有包含足够的信息来描绘一个具体的对象的类,除了不能实例化对象之外,可以定义成员变量、成员方法、构造方法。
  • 用abstract关键字修饰的类就是抽象类。如果某个类中包含抽象方法,那么该类就必须定义成抽象类。继承抽象类的非抽象类必须实现抽象类中的所有抽象方法,而已实现方法的参数、返回值要和抽象类中的方法一样,否则,该类也必须声明为抽象类。

接口

  •  接口用来定义功能是一种特殊的抽象类,这种抽象类中包含抽象方法。
  • 用interface关键字修饰的是接口,设计接口也是为了让其他类实现。接口中的方法可以是抽象的、静态的、默认的。与继承关系类似,接口与实现类之间存在多态性,一个接口能继承其他多个接口。当类实现接口时,类要实现接口中所有的抽象方法,否则,类必须声明为抽象类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值