Java 第十天

Java 10

一、多态

Ctrl+alt状态下,鼠标点击方法,会显示出选择

  • 定义
    • 同一个对象,在不同的时刻表现出来的不同形态。
  • 前提和体现(多态的基本条件)
    • 有继承/实现关系
    • 方法重写
    • 有父类引用指向子类对象
  • 访问特点(编译阶段)
    • 成员变量:编译看左边,执行看右边;
    • 成员方法:编译看左边,执行看右边。
      • 因为成员方法有重写,成员变量没有重写,所以对于成员方法和成员变量不一样。
  • 多态的优缺点
    • 优点:提高了程序的扩展性
      • 具体体现:定义方法的时候,使用父类型作为参数,将来在使用时,使用具体子类型参与操作。
    • 弊端:不能使用子类的特有功能
  • 多态中的转型
    • 向上转型(可以直接转换)
      • 从子到父:父类引用指向子类对象
    • 向下转型(强转)
      • 从父到子:父类引用转为子类对象(有可能会发生类型转换的异常)

二、抽象类

  • 基础
    • 在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
    • 抽象类和抽象方法用abstract关键字来修饰。
    • 抽象类:abstract class 类名{}
    • 抽象方法:public abstract void eat ();//抽象方法中没有方法体
  • 特点
    • 抽象类中不一定有抽象方法,但是有抽象方法的类必须为抽象类;
    • 抽象类不能实例化;
    • 抽象类由具体的子类进行实例化;
    • 子类必须对父类(抽象类)中的所有抽象方法进行重写;
    • 抽象类中可以定义非抽象方法;
    • 子类如果不重写抽象类中的抽象方法,则该类还是为抽象类;
    • 抽象类中可以有构造方法,用于子类访问父类时的数据初始化。
  • abstract关键字不能和哪些关键字共存

private

冲突

abstract方法必须被子类重写,而private不能被继承,也就不能重写。

final

冲突

final修饰的方法,变量都不能修改,而abstract修饰的方法必须被重写。

static

不能共存

无意义,static是静态的,abstract方法中无方法体。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值