1、封装
实现封装的步骤:
- 设置属性 private
- 为每个属性创建一对setter和getter方法,一般设为public
- 在赋值和取值方法中,加入属性控制语句
public class Employee {
private String name; // 姓名
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
2、继承
在子类中,不仅可以继承父类的属性和方法,还可以新增属性和方法
修饰符 class class_name extends extend_class {
// 类的主体
}
- 单继承
只允许一个类直接继承另一个类,即子类只能有一个直接父类,extends 关键字后面只能有一个类名
注意:
父类中的 private 成员在子类中是不可见的,因此在子类中不能直接使用它们
- super
- 访问父类的成员方法和变量
super.member
- 在子类的构造方法中显式的调用父类构造方法
super(参数列表)
- super和this的区别
super关键字:
- super.父类属性名
- super.父类方法
- super() 父类的无参构造
- super(paramlist) 父类的有参构造
this关键字:
1) this.属性名 // 表示当前对象的属性
2)this.方法名(参数) // 表示调用当前对象的方法
当局部变量和成员变量发生冲突时,使用`this.`
进行区分
3、方法重写
重写都是方法的重写,与属性无关
概念
子类中重写父类的方法,返回值类型、方法名和参数列表相同,方法体不同,继承了父类的功能,又定义子类特有的功能
@Override注解
@override :注解,重写注解校验
1. 说明该方法是重写父类的方法,否则编译阶段会报错
2. 子类重写父类方法的时候,`访问权限`需要大于父类
注意
【1】私有方法不能重写(父类的私有成员,子类不能继承)
【2】子类方法访问权限大于父类,public>protected>default>private
【3】父类中的静态方法不能被重写,static修饰;如果子类中有相同的方法,只是将父类同名方法隐藏起来了
方法重载
在同一个类中,方法名相同,参数列表不同(类型、个数、顺序不同),与方法的返回值类型、访问修饰符无关
4、多态性
多态分为编译时多态和运行时多态;
1)编译时多态是静态的,主要是指方法重载(方法名一样,参数列表不同),根据参数列表不同来区分不同的方法;
2)运行时多态是通过动态绑定实现
实现多态的3个必要条件:
- 继承:在多态中必须存在有继承关系的子类和父类
- 重写:子类对父类方法的重新定义,方法名不同,参数相同
- 向上转型:将子类的引用赋给父类对象