java面向对象三大特性理解

面向对象主要由三大特性:

  •   封装

  •   继承

  •   多态

.封装定义

编写一个类就是对数据和数据的操作封装,封装即时隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。(简单的来说在Java中一个文件包下的类文件....类下面的方法,属性....方法下的代码等.....)。

二、继承:

定义: 子类继承父类的特征和行为。提供继承信息的类被称为父类(基类),得到继承信息的类被称为子类(派生类)。

特点:1、一个类只能继承一个父类,构造方法不能被继承。  2、支持多层继承   3、父类private 的属性和方法不能继承。

具体理解:

继承:从一个已有的组件中获取元素,避免重复构建某些元素。
好处:提升重复利用。建立体系关系。
Java 实现:
通过extends关键字实现类与类之间的继承。被继承的类称为父类、基类,实现继承的类称为子类。·子类可以继承父类的非私有化 (private)元素(成员属性、成员方法)。
构造器不能被继承!但是父类构造器可以被子类调用。

注意:
Object是所有Java类的根父类。如果没有显式声明继承关系,那么这个类默认继承自Object。

三、多态

定义:同一个行为具有多个不同表现形式或形态能力

优点:提升程序的灵活性、可扩展性。

缺点:编译期间如果对象的类型是编译类型,且编译类型是父类类型,那么写代码时,只能调用父类类型提供的功能方法,不能调用真实类型中的特有方法。

多态实现方式:

方式一:重载与重写

重载:在一个类中,同一个方法名称,不同的参数类型及个数,可以完成不同功能。

重写:同一个方法名称,子类继承父类的方法,根据操作的子类不同,所完成的功能也不同。

方式二:抽象类和抽象方法

抽象方法:一个没有方法体的方法称为抽象方法。   

格式:修饰符 abstract 返回值类型 方法名(参数列表){}

抽象类:abstract class 类名{}

特点:1、抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类。

   2、抽象类不可以是实例化。

   3、抽象类的子类,可以是抽象类,也可以是具体类。如果子类为具体类,需要重写抽象类中所有抽象方法。

方式三:接口

定义:是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。

接口无法被实例化,但是可以被实现. 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。

具体理解:

多态:在面向对象编程中,工作的核心单元对象,可以在不同时期拥有多种形态(编译形态、真实形态),以适应更灵活的程序编码。


Java 实现:
前提条件:类与类之间有关系(父类与子类的继承关系、接口与实现类的实现关系)。对象可以在体系中的多个类型中完成相互转换:
类型自动提升(向上转型)︰子类自动提升为父类(祖父类)类型。
类型强制转换(向下转型)∶父类类型的对象通过强制转换语法转换为子类类型(向下转型时需要关注该对象的真实类型,最多向下转换为其真实类型,且不能转换为无关类型)
在多态情况下,如果子类重写了父类方法,且对象的真实类型是子类类型,那么在程序运行期间,调用的方法指向真实类型中的方法。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值