04747java程序设计 -- 继承与多态

继承与多态

子类

is a 关系

整体与部分 has a

extends 继承关键词

父类也叫做 超类 基类

object 类

  • 类层次最高点,是所有类的直接或间接父类

    • 方法

      • public final Class getClass(): 获取当前对象所属的类信息,返回Class对象
      • public Strig toString (): 安字符串对象返回当前对象本身的有关信息
      • public boolean equals(Object obj): 比较两个对象是否是同一个对象,是则返回true

单重继承

  • java是完全的面向对象语言 ,具有完全的oop能力。

  • 可继承父类的方法和成员变量,但是不能继承构造方法

  • 得到构造方法的方式

    • 自己编写构造方法
    • 系统为类默认提供唯一一个默认的构造方法
  • 多重继承是通过接口来实现的

对象转型

  • 对象转型:将子类对象付给父类变量

    • 类的变量既可以指向本类实例,又可以指向子类实例
  • 规则

    • 沿类层次向上转型总是合法的, eg 子类–> 父类
    • 对于向下转型,只能是祖先类转型到后代类,其他类之间不允许, eg: 父类—> 子类

方法覆盖与多态

方法覆盖–override

  • 子类中定义方法所用的名字,返回类型及参数列表和父类中方法使用的完全一样,也就是具有相同的方法签名

  • 覆盖规则

    • 重写

      • 覆盖的同名方法中,
        子类方法不能比父类方法的访问权限更严格
        子类抛出的异常不能比原方法更多
      • 子类与父类用相同的方法名及参数列表
      • 父类,子类
    • 重载

      • 方法名相同,参数列表不同
      • 重载的方法属于同一个类

调用父类构造方法

  • super关键词,用在子类构造方法中第一行。

多态

  • 重写,重载都是多态的表现

终极类和抽象类

final

  • 终极类

    • 不能被继承
  • 终极方法

    • 不能被重写
  • 终极变量

    • 不能被重新赋值

abstract

  • 抽象类

    • 抽象类中必须有抽象方法,可以有普通方法
    • 抽象类的子类所继承的抽象方法,同样还是抽象方法,除非子类实现父类的所有方法
    • 抽象类不能创建对象,除非通过间接的方法来创建起子类对象。

接口

定义

  • 用interface关键词修饰类

实现

  • 用implement 关键词实现接口,同时重写接口中所有的方法

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值