Java 三大特征

目录

封装

封装的概念

封装的主要构成

封装的好处

继承

继承的概念

继承的主要构成

 继承的好处和弊端

多态

多态的概念

多态中成员访问特点

多态的好处和弊端


Java是一种以面向对象为思想的编程语言,所以Java中会有对象这个概念,而对于对象的封装,继承,多态就是Java的三大特征。

封装

封装的概念

是面向对象三大特征之一(封装,继承,多态),是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。而封装的原则是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx()/setXxx()方法

封装的主要构成

属性:属性在类中通过成员变量来体现(类中方法外的变量),在设置属性时,需要用到private关键字。(private是一个权限修饰符,可以修饰成员(成员变量和成员方法),作用是保护成员不被别的类使用,被privat修饰的成员只在本类中才能访问)。

构造方法:是一种特殊的方法,分有参与无参构造方法。定义在属性之后,用于在外界实例化对象时,对对象进行初始化。当自己代码没有编写构造方法时,系统会默认给一个无参的构造方法,而当自己代码编写了一个有参构造方法时,还想用无参的构造方法,需要自己写一个无参的构造方法。

get/set方法:get/set方法是用于当有外部程序访问时,通过这个两个方法实现对属性的查看或者修改。当设置set方法时,需要用到this关键字。(在set方法内,方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量)

其他方法:类里面还可以定义一些有参或无参的方法以便使用。

案例:

封装的好处

通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性。

继承

继承的概念

继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。(注意:Java中类只支持单继承,不支持多继承,Java中类支持多层继承)

继承的主要构成

父类:父类的构成与前面所讲的封装差不多,这里就不再具体阐述。

子类

继承的类:子类需要在类名处使用extends关键字来说明继承了哪个类。

属性:继承之后,父类私有成员子类是不能继承的,如果子类有自己特有的属性,也用private进行定义。虽然子类没有继承父类私有成员,但是子类对象实例化后,是可以通过get/set访问父类的成员的。

构造方法:可定义有参和无参两种构造方法,如果想要构造一个拥有父类属性及子类属性的构造方法,需要使用super关键字来调用父类的带参构造方法(super 关键字的用法和this关键字的用法相似,this:代表本类对象的引用,super:代表父类存储空间的标识(可以理解为父类对象引用) )。

get/set方法:子类自动继承父类的get/set方法,如果有自己特有的属性,只需要定义这个属性的get/set方法即可。

其他方法:当方法与子类完全不同时,就是根据具体情况自己定义。当子类需要父类的功能,而功能主体子类有自己特有内容时,需要用到方法重写,这样即沿袭了父类的功能,又定义了子类特有的内容。(方法重写:子类中出现了和父类一模一样的方法声明需要用到方法重写,需要注意的是私有方法不能被重写,子类方法访问权限不能更低)

案例:

父类 

子类

 继承的好处和弊端

好处:提高了代码的复用性(多个类相同的成员可以放到同一个类中),提高了代码的维护性(如果方法的代码需要修改,修改一处即可)

坏处:继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性

多态

多态的概念

同一个对象,在不同时刻表现出来的不同形态。使用多态的前提和体现有继承/实现关系,有方法重写,有父类引用指向子类对象。

多态中成员访问特点

·成员变量:编译看左边,执行看左边
·成员方法:编译看左边,执行看右边

为什么成员变量和成员方法的访问不一样呢?
·因为成员方法有重写,而成员变量没有

案例(父类子类为上述的父类子类):

使用方法后的结果:

 

多态的好处和弊端

好处:提高了程序的扩展性。具体体现:定义方法的时候,使用父亲型作为参数,将来在使用的时候,使用具体的子类型参与操作

弊端:不能使用子类的特有功能


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值