java学习日记day10

复习

  1. 权限修饰符 public protected default private
  2. 封装:提供一对get/set()方法去访问
  3. Static:成员变量/成员方法/代码块
  4. Final:局部变量/成员变量/成员方法/类

接口:

  1. 是引用数据类型
  2. 接口中可以放什么
  1. 所有版本:

  静态常量

默认添加 修饰符 public static final

Int.MAX_VALUE

                抽象方法

                 

  1. JDK1.8

静态方法

   属于接口 通过接口名.方法名调用

默认方法

   作用 功能的扩展 可以选择性在实现类中重写

  1. JDk1.9

私有方法  存放默认方法中的公共代码 实现代码的复用 可以调用接口里的其他方法

私有静态方法  给静态代码中公共代码的提取 可以调用静态方法

3.接口的使用步骤

     A.不能new对象 需要一个实现类 实现接口

     B.实现类必须实现接口的所有抽象方法

     C.通过实现类调用方法

4.接口和类的关系:

     类 和 类(单继承):1 v 1 extends 继承

     接口 和 类:没有此关系

     类 和 接口(可以继承父类 多实现接口 )1 v n   implements

     接口 和 接口(多继承):1 v n  extends

         子类中可以使用

  1. 独有的方法
  2. 父类中继承过来的所有方法
  3. 接口中的 默认方法(有重名的需要重写) 和 抽象方法

         接口作为方法参数和返回值的

  1. 方法参数:传的是接口的实现类的对象,传的是哪个实现类,调用的就是具体的实现类的对象和方法。
  2. 返回值:return new 接口的实现类 具体返回的都是接口的实现类对象

        

 多态:一种事物,多种形态,称为多态

      出现前提:没有关系的类会编译报错

      接口的多态:

      Interface a = new InterfaceImpl(); à向上造(转)型

      类的多态

Animals b = new BigFish();    à向上造(转)型 父类型引用指向子类型对象

接口类型 a = new 接口实现类对象()

父类型 a = new 子类型()

编译时状态(编译器) =  运行时状态(JVM)

编译看左边,运行看右边。意思编译时候,看左边有没有该方法,运行的时候结果看 new 的对象是谁,就调用的谁。只能调用左边的成员变量。

编译时状态决定了对象能调用那些属性和方法

运行时状态决定了对象最终能调用那些方法(重写)

      

BigFish c = (BigFish) b;           向下转型(强制类型转换)

  1. 有可能出现的问题:不知道 引用 到底是什么类型

ClassCastException – 类型转化异常

  1. 解决办法:转换前先判断 引用 实际上是不是要转换的类型对象

引用(a) instanceof 子类型(cat)

       多态好处:类型统一 代码规范 代码的复用性(当有多种继承的类的对象是,主方法里的方法的返回值和形参可以统一用父类,更好的类型统一)

        多态出现的前提

            继承:必须存在父子类关系

            向上造型:在多要中需要将子类型的引用赋值给父类型对象

            重写:必须 子类重写父类中的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值