java---面向对象的三大特征

封装

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。隐藏了细节之后,对于使用者来说,更简单了

好处:

将变量隔离。便于使用。提高重用性。提高安全性。

封装原则:

①将不需要对外提供的内容都隐藏起来。

②把属性都隐藏,提供公共方法对其访问。

函数本身就是一个最小的封装体。类也是一个封装,包也是一种封装,框架也是.

继承

事物与事物之间的关系,并把这种关系给抽取出来,就是继承。

继承特点:

1,提高了代码的复用性。

2,让类与类之间产生了关系。有了这个关系,才有了多态的特性。

注意:

一千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有所属关系(即is  a 关系)才可以继承。

二 java中之支持单继承,不支持多继承,因为多继承容易带来安全隐患,因为如果继承的多个父类中要是定义了相同功能,但功能内容不同时,不确定要运行哪一个。这就是优化C++的部分(C++支持多继承),从而使java更简单易学,但是java保留了这种机制,并用另一种体现来完成表示,叫实现。

Java 支持多层继承,也就是一个继承体系,

如何使用一个继承体系的功能,————想要使用体系,先查阅父类的描述,因为父类中定义的是该体系中的共性功能,通过了解共享功能,就可以知道该体系的基本功能,那么这个体系已经可以基本使用,

但是在具体调用时,要创建最子类的对象,原因:

一是因为有可能父类不能创建对象,如抽象类,

二是创建子类对象可以使用更多的功能,包括基本的也包括特有的。

简单一句话:查阅父类功能,创建子类对象使用功能。

多态

多态:可以理解为事物存在的多种体现形态。

1,多态的体现:

         父类的引用指向了自己的子类对象。换种说法就是:父类的引用也可以接收自己的子类对象。

代码体现:Animal a = new Cat();

2,多态的前提:  必须是类与类之间有关系。要么继承(extends),要么实现(implements)。

         通常还有一个前提:存在覆盖。如果不存在覆盖,那么多态就没有意义了,

3,多态的好处:  多态的出现大大的提高程序的扩展性。提高代码的复用性

4,多态的弊端:  虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员。不能预先去使用子类,因为那个时候子类还不存在,没有子类,怎么可能去访问? 但是我们应该侧重扩展性。

  也就是说: 多态自始至终都是子类对象在做着变化。

函数也具有多态性,重载和覆盖就是具体体现。

在多态中,非静态成员函数中的特点:

在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

在运行时期:参阅对象所属的类中是否有调用的方法。

简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

在多态中,成员变量的特点:无论编译和运行,都参考左边(也就是参考引用型变量所属的类)。

在多态中,静态成员函数、静态成员变量的特点:无论编译和运行,都参考做左边。静态不覆盖,

静态方法,当你在调用时,静态方法会加载内存中,这个时候是不需要对象,因为静态方法不所属对象,静态本身不访问,不参考对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值