2024.4.26 Java学习

多态

  • 什么是多态?

                同类型的对象,表现出的不同形态

  • 多态的表现形式

                父类类型  对象名称 = 子类对象                【例:fu f = new zi()】

  • 多态的前提

                有继承/实现关系;

                有父类引用指向子类对象         【例:fu f = new zi()即父类fu指向子类对象zi】

                有方法重写

  • 多态的好处

                使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利

  • 多态的弊端

                不能使用子类的特有功能

  • 引用数据类型的类型转换的方式

                自动类型转换、强制类型转换

  • 强制类型转换能解决的问题

                可以转换真正的子类类型,从而调用子类的独有功能

                转换类型与真实对象类型不一致会报错

                转换的时候有instanceof关键字进行判断

  • 多态调用成员的特点

    ​​​​​​(1)变量调用:编译看左边,运行也看左边

        编译看左边:javac编译代码时,会看左边的父类中有没有这个变量,如果有,编译成功;没有则编译失败。

        运行看左边:java运行代码时,实际获取的就是左边父类中成员变量的值

      (2)方法调用:编译看左边,运行看右边

        编译看左边:javac编译代码时,会看左边的父类中有没有这个方法,如果有,编译成功;没有则编译失败。

        运行看右边:java运行代码时,实际上运行的是子类中的方法(虚方法表中与父类方法相同的已被子类方法覆盖)

重写

  • 方法的重写

                当父类的方法不能满足子类现在的需求时,需要进行方法重写

  • 书写格式

           在继承体系中,子类出现了和父类中一模一样的方法声明,就称子类这个方法是重写的方法

  • @override重写注释

                1、@override是放在重写后的方法上,校验子类重写时语法是否正确

                2、加上注释后如果有红色波浪线,表示语法错误

                3、建议重写方法都加@override注释

  • 什么包?

        包名 + 类名

  • 包的作用

        包就是文件夹,用来管理不同功能的Java类

  • 包命名的规则

        公司域名反写 + 包的作用,需要全部英文小写,见名知意

  • 什么时候需要导包?什么时候不需要导包?

  1. 使用同一个包中的类时,不需要导包
  2. 使用java.lang包中的类时,不需要导包
  3. 其他情况都需要导包
  4. 如果同时使用两个包中的同名类,需要用全类名

final

  • final方法

        表明该方法是最终方法,不能被重写

  • final类

        表明该类是最终类,不能被继承

  • final变量

        叫做常量,只能被赋值一次

        final修饰的变量是基本类型:变量存储的数据值不能发生改变;

        final修饰的变量是引用类型:变量存储的地址值不能发生改变,对象内部的可以改变

代码块

  • 静态代码块

        static{}   

        (如定义在main方法前,对用户信息初始化用于登录操作时可以使用) 

  • 代码块的分类

        局部代码块、构造代码块、静态代码块

  • 局部代码块的作用

        提前结束变量的生命周期(已淘汰)

  • 构造代码块的作用

        抽取构造方法中的重复代码(不够灵活)

  • 静态代码块的作用

        数据的初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值