欢快的时光总是从学习java开始,今天我们将一起学习Java面向对象中最重要的一部分!
java面向对象的三大特性封装继承多态都是为了提高代码的复用率,使开发人员少写代码。
1.包(package)
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
(1)自定义包
声明包的语法如下:
package <包名>
(2)创建包
创建包的时候,你需要为这个包取一个合适的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。
包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。
如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中。
(3)包的导入
导入(import),将使用package分离的各个类导入回来,让编译器能够找到所需要的类。
使用在同一个包下的类不需要导入可以直接用,使用不同的包下的类才需要导入。
使用格式:
import aaa.bbb.ccc;
可以使用通配符“*”代替类名,将包中的所有类导入:
import aaa.bbb.*;
注意:
import aaa.bbb.*;并不会导入import aaa.bbb.ccc包下面的类。
2.继承
继承是指子类继承父类的非私有成员变量与方法,在子类中可以使用。
特征:特征有很多简述一些
- Java是单继承多实现。一个子类最多继承一个父类,但可以实现多个接口
- 继承具有传递性(多重或多极继承)。如果C继承了B,B又继承了A,那么C也就继承了A的所有非私有成员变量与方法
- 基类派生出的子类具有可拓展性
Java继承语法如下:
[修饰符] class 子类名 [extends 父类名]{
//类定义部分
}
3.重载与重写
(1)重载
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常用的地方就是构造器的重载。
重载规则:
- 被重载的方法必须改变参数列表(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
(2)重写
重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。
4.多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态存在的三个必要条件:
- 继承
- 重写
- 基类引用指向派生类对象(引用还是指向基类)
比如:
Parent p = new Child();
当使用多态方式调用方法时,首先检查基类中是否有该方法,如果没有,则编译错误;如果有,再去调用派生类的同名方法。