java继承

继承就是对某些类的抽象,就是代码的复用

Java的继承时单继承,就是一个子类只能有一个父类;

  1. private 私有

    • 子类继承不到,完全拿不到
    • 只能父类自己用
  2. 默认权限(啥都不写)

    • 同包下:能继承
    • 不同包:不能继承
  3. protected 受保护

    • 不管同包不同包,子类全都能继承
    • 跨包也能继承
  4. public 公开

    • 任何地方都能继承,随便用

super

  1. 本质

super 代表父类对象 this 代表当前子类对象 super 代表父类对象

  1. 三大用法

① 调用父类构造方法(最常用)

格式:super();

  • 必须写在子类构造第一行

  • 作用:先调用父类无参构造,再执行子类构造

  • 有参:super(实参); 调用父类有参构造

只能在子类的方法或者构造方法中

this()本类的构造

super()父类的构造

多态

父类的引用指向子类的对象

方法重写
  1. 是什么

子类重新写一遍父类已经有的方法 父类有这个方法,子类觉得不好用,重新改写内容,就是重写。

  1. 重写满足 4 个条件

  2. 继承关系:必须子类继承父类

  3. 方法名一模一样

  4. 参数列表一模一样

  5. 返回值一致

  6. 权限要求

子类权限 不能比父类更小

  • 父类 public → 子类只能 public
  • 父类 protected → 子类可用 protected/public

private 方法不能被重写!

父类的方法不满足子类的需要

多态的注意情况

1 子类继承父类,子类重写了父类的方法,子类可以调用父类的独有方法,和自己重写过的方法

2 父类的引用指向子类的对象

这个变量虽然是父类型,但是是子类对象,调用时,他调用被重写的方法的时候,是调用的子类的方法,而且不能调用子类独有的方法,只能用父子类共有的方法,也就是子类重写过的父类的方法

3必须有继承关系,子类重写父类方法,父类引用指向子类对象才能实现多态

同一个方法根据对象类型的不同采取不同的行为方式

父类型父类对象父类方法

子类型子类对象 子类和父类方法

父类型子对象 父子类共有的方法

instancesof

作用:判断 左边对象 是不是 右边这个类型 中文:是不是、属于

把子类转换为父类,向上转型,直接转

把父类转换为子类,向下转型,需要强制转换,需要先判断能不能转

向上转型后子类独有的方法不能用

static final

在当前类里面,访问静态方法不用类名可以直接调用,

代码块的执行顺序

静态代码块

代码块

构造器

静态代码块只执行一次

创建对象的时候,就把类中的静态代码块,代码块,构造方法一起执行

static修饰的都是属于类的

用final修饰之后的类不能被继承,

相关推荐
2601_962071577 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491117 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
淡海水8 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
CS_Zero8 小时前
C语言sizeof是函数吗?
c语言·开发语言
-今昭-9 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
zww894911110 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设11 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳11 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥12 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
_Twink1e12 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen