JAVASE总结作业----面向对象的三大特征

本文详细介绍了面向对象编程的三大特性——封装、继承和多态。封装确保了对象内部数据的安全性,通过提供公共访问方法提高代码复用。继承允许子类从父类继承特性,减少代码重复,同时讲解了super关键字的使用。方法重写是子类对父类方法的改进,多态则使得不同对象对同一行为有不同的表现。多态需要继承或实现为前提,其关键在于动态绑定,使得代码更加灵活。
摘要由CSDN通过智能技术生成

封装
封装概述
是面向对象三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量private,提供对应的getXxx()/setXxx()方法

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

“封装”通过合并特征和行为来创建新的数据类型。“实现隐藏”则通过将细节“私有化”把接口和实现分离开来。
多态的作用则是消除类型之间的耦合关系。

继承
继承
继承就是子类继承父类的特征和行为,

 继承的作用
通过继承可以快速创建新的类,实现代码的重复利用,提高开发的效率。

继承后成员访问规则
继承的构造方法调用

创建对象时,调用构造方法,子类会先调用父类的构造方法。(没有父,哪来子)
子类没有构造方法则会默认调用父类的空参构造方法。
可以隐式地实现,也可以用关键字super来实现,super应在方法中的第一行。
父类私有变量调用
因为子类继承父类非私有变量和方法,可以调用父类的私有成员获取方法,来获取父类中的私有变量。

父类变量
子类的静态变量和静态方法会隐藏父类的静态变量和静态方法
子类中如果没有定义同名的变量和方法,则调用父类变量和方法。

super关键字使用
super可以访问父类成员属性,成员方法,构造方法。
super.父类成员变量
super.成员方法名();
super();//父类构造方法

注意:

子类不能选择性继承父类;
Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;
构造方法不会被子类继承,但可以从子类中调用父类的构造方法。
父类的私有成员子类不能直接调用。


 方法重写
**方法重写:**声明不变,重新实现。子类中出现和父类一样的方法,返回值,方法名,参数列表都相同。这样会将父类方法覆盖,也叫重写。
方法重写后的权限不能比父类方法小,如:父类project方法,子类不能是private。父类是static子类也要是static。

 继承的应用
多态
抽象类

多态
多态定义
是指同一行为,对于不同的对象具有多个不同表现形式。

程序中多态: 是指同一方法,对于不同的对象具有不同的实现.

多态使用的前提条件
继承或者实现【二选一】
父类引用指向子类对象【格式体现】 `

方法重写
方法的重写【意义体现:不重写,无意义】
后期绑定,它的含义就是在运行时根据对象的类型进行绑定。 也叫做动态绑定或运行时绑定。……编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。

Java中除了static方法和fianl方法(private方法属于fianl方法)之外,其他所有的方法都是后期绑定。

多态的体现
父类的引用指向它的子类的对象:

父类类型 变量名 = new 子类对象;
变量名.方法名();

父类类型:指子类对象继承的父类类型,或者实现的父接口类型。

多态时成员的访问
成员变量

多态时成员变量的访问特点(向上转型,调用父类成员变量)
编译看左边,运行看左边
简而言之:多态的情况下,访问的是父类的成员变量
成员方法

多态时成员方法的访问特点
非静态方法:编译看左边,运行看右边
(编译父类有的方法,执行子类改写的方法,没有改写就调用父类)
(向上转型)
简而言之:编译的时候去父类中查找方法,运行的时候去子类中查找方法来执行
静态方法

静态方法:编译看左边,运行看左边
简而言之:编译的时候去父类中查找方法,运行的时候去父类中查找方法来执行
**注意:**多态的情况下是无法访问子类独有的方法

多态总结
子类向上转型为父类,就成为父类类型,不能访问子类独有方法,访问被重写方法时调用子类重写后的方法,访问静态方法调用父类方法,访问成员变量调用父类变量。这样做的好处就是可以将多个子类转型为父类,调用同一个方法,减少代码的重复。
多态就像是一个马甲,穿上马甲后你就不能使用马甲之外的行为。使用马甲中的行为,如果你有那么就可以用按你的行为来,其他都是马甲的。只要你能穿着马甲,就可以用我这个马甲部落的功能。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值