面向对象(day9)


第九天 多态的转型,抽象类,接口

1. 多态的转型
     子类提升为父类类型,只能调用子类父类共有方法
     需要将提升为父类类型的子类转成子类对象,调用子类特有方法
     向上转型,向下转型
     instanceof关键字,进行判断对象的类型
2. 抽象类
     抽象,说不清楚的
     抽象方法,是没有方法体的方法,必须abstract修饰
     抽象方法,必须存在于抽象类,类需要抽象修饰
3. 抽象类的特点
     抽象类,不能创建对象,不能实例化,不允许 new
     需要定义子类,继承抽象类,并覆盖抽象类的全部抽象方法,建立子类对象
     如果子类,覆盖一部分抽象方法,子类还是一个抽象类
     抽象类中,可以有静态方法,但是static(直接是类名.函数名如果和abstract一起用(abstract是没有方法体的)调用函数没方法体毫无意思)不能和abstract一起使用
    抽象类有强制性,强制子类,必须重抽象写方法
    抽象类,是这个继承体系中的最共性内容
4. 抽象类的案例  *****
    传智的学生体系
    员工与经理
5. 什么是接口
     先期可以理解为特殊的抽象类
     当一个抽象类中的,所有方法,全部是抽象方法的时候,就把这个类换了一个名词,叫做接口
     定义接口,不在使用class关键字,用interface 接口名
6. 接口中成员的定义
     成员变量的定义
    固定格式:public static final 数据类型 变量名  = 值
     成员方法定义
    固定格式:public abstract 返回值类型 方法名();
     接口中的权限,必须是public
7. 接口的使用方法
      接口中都是抽象方法,接口也不实例化对象
      需要定义子类,实现接口,覆盖接口中的全部抽象方法,建立子类对象
      如果子类只覆盖了部分抽象方法,子类还是一个抽象类
      实现接口的关键字 implements (实现)接口名
8. 接口的优势
     降低程序之间的耦合性,提高了程序的扩展性
     接口就是对外暴露规则
     面向接口编程
9. 接口之间的继承关系
     类与类之间是继承关系
     类与接口之间是实现关系
     接口与接口之间是继承关系
     接口之间支持多继承,接口名之间逗号分开
     接口可以多实现,一个类可以同时实现多个接口
     一个子类继承一个类的同时,实现多个接口
      子类真的很累
10. 继承和实现的区别
    实现接口,必须覆盖所有的抽象方法
    继承抽象类,抽象类可以有普通方法,子类可以用
    多实现,避免了单继承的局限性
11. 抽象类和接口的区别
     抽象类需要子类继承后,覆盖全部抽象方法,建立子类对象
    接口,需还子类实现,覆盖全部抽象方法,建立子类对象
    抽象类中,有普通方法,子类继承后直接使用
    接口中,没有普通方法,全部是抽象的方法,子类必须全部覆盖
    抽象类中有构造方法,可以给体系中的子类实现成员变量的赋值
    接口中定义的都是全局常量,直接调用使用

    抽象类是这个继承体系的最共性内容
    接口是这个体系以外的扩展内同
    一个类只能继承一个类,有局限性
    接口的多实现,避免了单继承的局限性
 面试问:java支持多继承吗?类与类之间不支持,接口之间支持多继承
  A. abstract不可以和private共用
  B. abstract不可以和static共用
  C. abstract不可以和final共用


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值