大家好,我是冰冰,前几天分享了java面向对象的知识,今天会接着分享java面向对象的一些干货,希望对大家学习java的路上有所帮助!
本章目标:
上次讲了面向对象的基本组成、类和对象的关系、内存机制、属性和方法的创建、这次咱们就说说封装、多态、继承和什么是方法的重载。
1、方法的重载
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
方法的重载规则:
-
方法名必须相同;
-
参数列表必须不同(个数不同、类型不同、参数排列顺序不同);
-
方法的返回类型可以相同可以不同;
-
仅仅返回类型不同不足以成为方法的重载;
原理:
方法名称相同时,编译器根据调用方法的参数个数、参数类型等去逐个匹配,去选择对应的方法,如失败,则编译器报错
**
**
2、封装
**定义:**是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
程序意义上:
-
使用private关键字修饰成员变量,使其不能在类外直接赋值、调用;
-
编写get、set方法,开放对属性的赋值和调用
封装的好处:
- 良好的封装能够减少耦合;
- 类内部的结构可以自由修改;
- 可以对成员变量进行更精确的控制;
- 隐藏信息,实现细节。
大实话:
对于程序员来说呢,我觉得封装的好处就是可以让程序员偷懒,辛苦一次,后面可以少敲很多代码,增强了复用性,并且简化了代码。
static关键字
java中有一类特殊的成员变量、方法,可以使用类名直接调用,就是使用static关键字修饰的成员变量、方法,代表它是静态变量、方法。
用 static 修饰的属性、方法和代码块属于它所在的类,由这个类创建的所有对象可以共用同一个static成员;
使用static 修饰的属性称为静态变量或类变量
没有使用 static 修饰的属性称为实例变量
注意:方法里不能定义static变量,static代码块只执行一次,一般进行初始化。在静态方法中,不能直接访问实例变量和实例方法
**
**
**
**
3.继承
什么是继承?
(1)用来提高代码的复用性
(2)将相同的功能模块封装到方法中需要使用时调用方法达到代码复用的目的
(3)通过继承将多个类中的相同的类容摘取出来,变成一个新类,让其他类和当前的新类产生关系,达到代码复用性的目的
**
**
实现
**
**
继承使用extends关键字**
**
注意:
继承的好处及注意事项:
1.继承的出现提高了代码的复用性,提高软件开发效率。
2.继承的出现让类与类之间产生了关系,提供了多态的前提。
3.在JAVA中,类只支持单继承(只能一个亲爹),一个父类可以多个子类(多个儿子);
在子类中,访问父类中的成员变量格式:
super.父类中的成员变量
**
**
4…多态
**
**
定义:多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果。
存在的必要条件:
1.需要存在继承和实现的关系;
2.同样的方法调用而执行不同操作、运行不同代码
3.在运行时,父类或者接口的引用变量可以引用其子类的对象
作用:
1.多态通过分离做什么和怎么做,从一个角度将接口和实现进行分离;
2.多态消除了类型之间的耦合关系;
3.多态的存在提高了程序的拓展性和后期的可维护性;
注意:
1.由子类转型成父类,在继承图上是向上移动的,一般称为向上转型。
2.向上转型是从一个较专用类型向通用类型转换,所以总是安全的,也就是说,子类是父类的超集
3.向上转型过程中,类接口中唯一可能发生的事情是丢失方法,而不是获取方法。
1
面对疫情 不必恐慌
最后冰冰说一下:最近疫情四起,希望大家减少外出,做好防护!
END