首页 > 编程语言 >JAVA学习day05

JAVA学习day05

时间:2024-07-06 21:41:12浏览次数:22  
标签:重写 JAVA 对象 子类 day05 学习 接口 父类 方法

继承

super

  1. super(); super调用父类的构造方法,且必须在构造方法的第一行。
  2. this();调用本类的构造方法。
  3. super只能出现在子类的方法或者构造方法中。
  4. super和this不能同时调用构造方法。
  5. this 代表 调用当前类的对象
  6. super 代表 调用父类的对象
  7. this 在没有继承的情况下也能使用
  8. super 只能在继承条件下才能使用

方法的重写

  1. 重写的意义:父类的功能,子类不一定需要,或者不一定满足。

  2. 只能子类重写父类的方法。

  3. 方法名必须相同。

  4. 参数列表必须相同(不同就是重载)。

  5. 修饰符:范围可以扩大但不能缩小:public>Protected>Default>private

  6. 抛出的异常范围可以缩小但是不能扩大:ClassNotFoundException-->Exception(大)

  7. A a = new A(); 创建了一个A类的对象,并将其引用赋值给一个类型为A的变量a

    B b = new A(); 创建了一个A类的对象,并将其引用赋值给一个类型为B的变量b。这种情况下,尽管实际对象是A类的实例,但通过b变量只能访问B类中定义的方法和属性(除非这些方法在A类中被重写)

  8. 引用赋值:引用赋值(reference assignment)是指将一个对象的引用(即内存地址)赋值给一个变量。这样,变量实际上并不存储对象本身,而是存储一个指向对象的内存地址。多个变量可以引用同一个对象,这样的变量可以被用来访问和修改同一个对象的状态。

多态

  1. 多态是方法的多态
  2. 父类和子类,有联系 。否则类型转换异常ClasscastException!
  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();调用方法时会执行子类中重写的方法无论是通过父类的引用还是子类的引用,只要子类没有重写该方法,都会调用父类的方法
  4. 无法重写:1. static修饰的方法,属于类,它不是实例;2. final 定义的为常量;3. private方法。
  5. image-20240703112827488

instanceof

Person person = new Student();

X instanceof Y

instanceof用于检查一个(X)对象(不是类型)是否是(Y)某个类(或其子类)的实例

具体两个步骤:

  1. 编译时类型检查:编译器首先检查操作数的静态类型(编译时类型),确保这些类型(X和Y)之间有继承关系。如果没有继承关系,编译器就能确定 instanceof 判断的结果永远为 false,因此会报编译错误
  2. 运行时类型检查:如果编译时类型检查通过,instanceof 运算符将在运行时进行实际的对象(new Student属于Student的实例同时也属于Person、Object的子类)类型检查,以确定对象是否是特定类或其子类的实例。

类型转换

  1. 父类的引用指向子类的对象形如Person student = new Student();
  2. 子类转换为父类为向上转型不需要强制转换,但是会丢失子类的一些方法。
  3. 父类转换为子类为向下转型需要强制转换。
  4. 作用:方便方法的调用,减少重复的代码,提高利用率

static

  1. 与类一起加载(最快),只加载一次。
  2. 匿名代码块和对象一起产生,在构造器之前。经常用于赋初始值
  3. final修饰的类不能被继承

抽象类

  1. 不能new这个抽象类,只能靠子类去实现它
  2. 有抽象方法的类必须设置为抽象类,但抽象类里面可以有普通方法
  3. 意义:作为一种标准框架设计并节约开发成本

接口

  1. 接口通过定义方法让不同的人实现,即一种方法有多种实现方式。
  2. interface定义接口,之前都是class定义为类。
  3. 接口可以多继承。
  4. 接口中所有定义的方法都是抽象的public abstract只不过省略了。所有定义的属性都是常量
  5. 接口必须要有实现类,同时实现类必须重写接口中的方法。
  6. image-20240705101825099
  7. 接口不能被实例化,接口没有构造器
  8. implement可以实现多个接口(多久继承)

异常

image-20240706193041967

image-20240706193131475

错误

image-20240706192950467

异常和错误的区别

image-20240706193149196

异常的处理机制

image-20240706202140692

  1. try(监控)-catch(捕获异常)-finally(善后工作)
  2. throw抛出异常,可以让catch捕获到。这是一种向下抛出
  3. throws在方法中捕获异常,相当于在方法中的异常向上抛出
  4. image-20240706213750018

标签:重写,JAVA,对象,子类,day05,学习,接口,父类,方法
From: https://www.cnblogs.com/yzl2317520596/p/18287967

相关文章