继承与多态

1、封装

实现封装的步骤:

  1. 设置属性 private
  2. 为每个属性创建一对setter和getter方法,一般设为public
  3. 在赋值和取值方法中,加入属性控制语句
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
  1. 访问父类的成员方法和变量 super.member
  2. 在子类的构造方法中显式的调用父类构造方法 super(参数列表)
  • super和this的区别

super关键字:

  1. super.父类属性名
  2. super.父类方法
  3. super() 父类的无参构造
  4. 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个必要条件:

  1. 继承:在多态中必须存在有继承关系的子类和父类
  2. 重写:子类对父类方法的重新定义,方法名不同,参数相同
  3. 向上转型:将子类的引用赋给父类对象
多态的实现方式
  1. 重写java重写与重载
  2. 接口 java接口
  3. 抽象类和抽象方法 java抽象类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值