多态,抽象方法,抽象类,接口

多态,java代码多种形态,多种体表

向上转型
  • 语法:
    父类() 对象名 = new 子类名(参数列表)

使用父类类型的变量接收子类类型的对象
多态使用的方法和属性都是子类和父类共有的内容,
对象能够调用的属性和方法全部来源于子类中的内容。
子类独有的方法和属性是不能使用的

  • 里式转换原则:父类能够出现的地方,子类同样也可以出现
  • 如果类型是Object类型,所有的引用数据类型都可以作为参数传入,所有基本数据类型也可以传入。Object是万能的
    因为基本数据类型不是类,那么和Object也就没有直接的父子关系,是因为包装类。
向下转型
  • 语法
    子类名 对象名 = (子类名)向上转型的对象名

如果向上转型后,需要调用子类独有的方法和属性时,就需要向下转型,必须是先有向上转型,才会有向下转型。
一般用instanceof返回boolean类型来判断需要向下转型的对象是否属于某个子类后,再调用该子类的方法,防止异常出现。

抽象类,抽象方法

用关键字abstract修饰的类和方法

  • 抽象类
    • a.构造方法不能创建对象,因为是抽象的。jvm认为该类可能出现抽象方法
    • b.抽象类可以存在抽象方法,也可以不存在,抽象方法必须存在于抽象类中(接口)
  • 抽象方法(抽象方法是没有方法体,不能做到具体的功能)
    • 语法结构
      修饰符 abstract 返回值类型 方法名称(参数列表);
    • 出现的位置:
      抽象方法只能定义在抽象类中和接口中。

如果子类继承了一个抽象类,必须重写抽象父类中的抽象方法(或者将子类也定义为抽象方法)

抽象方法和普通方法区别: 抽象方法没有方法体,普通方法有。

接口

接口,接口是属于类级别(接口是一种特殊的类)
接口是一种规范,规则。
面向接口编程
interface关键字是接口的标志

  • 1.在接口中属性必须是常量(访问修饰符不能为private,名称习惯上全大写,必须进行初始化)
  • 2.接口中的方法必须是抽象方法,习惯上省略关键字abstract
  • 3.接口不能创建对象,因为接口中的方法全部为抽象方法。
  • 4.接口打破了java中单继承的缺陷,接口可以实现多继承

读法:实现类实现了接口中的抽象方法

关系
  • 类与类: 子类(class)只能继承(extends)一个父类(class),
    构造方法必须调用
  • 类与接口: 实现类(class)可以实现(implements)多个接口(interface),所有的接口必须实现。
  • 接口与接口: 接口(interface)可以继承(extends)对个接口(interface),子接口要继承所有父接口的属性和抽象方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值