当前位置: 首页 > news >正文

网站ipc备案介绍产品的营销推文

网站ipc备案,介绍产品的营销推文,网页设计主要用什么软件,wordpress登陆才可以看到🚀 Java面向对象核心揭秘:从构造到多态的实战指南 文章目录🚀 Java面向对象核心揭秘:从构造到多态的实战指南前言一、构造方法调用规则1. 无参构造方法调用2. 父类有参构造的强制调用二、方法重载与重写1. 方法重载(Ov…

🚀 Java面向对象核心揭秘:从构造到多态的实战指南

文章目录

  • 🚀 Java面向对象核心揭秘:从构造到多态的实战指南
    • 前言
    • 一、构造方法调用规则
      • 1. 无参构造方法调用
      • 2. 父类有参构造的强制调用
    • 二、方法重载与重写
      • 1. 方法重载(Overload)
      • 2. 方法重写(Override)
    • 三、向上转型与多态
      • 1. 向上转型(Upcasting)
      • 2. 多态实现机制
      • 3. 静态方法 vs 实例方法
    • 四、方法重写规则
      • 1. 核心规则
      • 2. 重写与super关键字
    • 五、多态深度解析
      • 1. 多态应用场景
      • 2. 类型转换与异常
      • 3. 不可重写的情况
    • 六、抽象类
    • 七、接口
    • 八、异常处理机制
    • 九、普通方法与多线程
    • 十、实现Runnable接口
    • 总结


前言

本笔记系统整理Java面向对象编程的核心概念,涵盖构造方法调用规则方法重载与重写多态实现机制类型转换原理,帮助开发者深入理解Java对象模型与继承体系。


一、构造方法调用规则

1. 无参构造方法调用

Student s = new Student(); // 自动调用无参构造方法
  • 执行顺序
    1. 父类构造方法 → 2. 子类构造方法
  • 隐式super():编译器自动添加父类无参构造调用

2. 父类有参构造的强制调用

class Parent {public Parent(String name) {} // 只有有参构造
}class Child extends Parent {public Child() {super("强制调用"); // 必须显式调用}
}
  • 规则
    • 父类没有无参构造时,子类必须显式调用super(参数)
    • super()必须是构造方法中的第一条语句
  • 编译错误示例
    public Child() {System.out.println("子类初始化"); // 错误!super("调用"); // 必须放在第一行
    }
    

二、方法重载与重写

1. 方法重载(Overload)

特性说明
同个类中方法名相同,参数列表不同
返回值无关仅参数类型/数量不同
编译时绑定根据调用参数确定方法
class Calculator {// 重载示例int add(int a, int b) { return a + b; }double add(double a, double b) { return a + b; }
}

2. 方法重写(Override)

特性说明
父子类之间子类重定义父类方法
方法签名相同方法名+参数列表相同
运行时多态根据实际对象类型调用
class Animal {void sound() { System.out.println("动物叫"); }
}class Cat extends Animal {@Overridevoid sound() { System.out.println("喵喵喵"); }
}

三、向上转型与多态

1. 向上转型(Upcasting)

Animal animal = new Cat(); // 父类引用指向子类对象
  • 特点
    • 编译时类型 = 父类(Animal)
    • 运行时类型 = 子类(Cat)
    • 只能访问父类声明的方法

2. 多态实现机制

animal.sound(); // 输出"喵喵喵"(实际调用Cat的方法)
  • 核心条件
    1. 继承关系
    2. 方法重写
    3. 父类引用指向子类对象
  • 动态绑定:运行时根据实际对象类型确定方法

3. 静态方法 vs 实例方法

调用方式绑定时机多态支持
animal.staticMethod()编译时(按引用类型)
animal.instanceMethod()运行时(按实际类型)

四、方法重写规则

1. 核心规则

@Override // 注解确保正确重写
void sound() { ... }
  • 必须遵守
    1. 方法名和参数列表完全相同
    2. 返回值类型兼容(相同或是子类)
    3. 访问权限不能缩小(publicprivate 禁止)
    4. 异常范围不能扩大(IOExceptionException 禁止)

2. 重写与super关键字

class Cat extends Animal {@Overridevoid sound() {super.sound(); // 调用父类原始实现System.out.println("追加猫叫");}
}
  • super使用限制
    1. 只能在子类中使用
    2. 构造方法中必须位于第一行
    3. 不能与this()同时调用构造方法

五、多态深度解析

1. 多态应用场景

// 统一处理不同子类
void animalConcert(Animal[] animals) {for (Animal a : animals) {a.sound(); // 每个对象执行自己的实现}
}

2. 类型转换与异常

Animal animal = new Cat();// 向下转型(需显式转换)
if (animal instanceof Cat) {Cat cat = (Cat) animal;cat.catchMouse();
} else {// 类型不匹配处理
}// 错误转换导致ClassCastException
Dog dog = (Dog) animal; // 抛出异常!

3. 不可重写的情况

修饰符说明示例
static类方法,不支持多态public static void method()
final禁止重写public final void method()
private不可访问private void method()

六、抽象类

  • abstract修饰的类为抽象类,可包含抽象方法(只有方法名,无实现)
  • 抽象类中可定义普通方法,但抽象方法必须在抽象类中
  • 抽象类的所有抽象方法必须由子类实现
  • 抽象类不能被new实例化,只能通过子类继承实现

七、接口

  • 接口无法定义具体方法,声明关键字为interface
  • 接口中所有方法默认是public abstract(可省略修饰符)
  • 实现接口的类需通过implements关键字,并必须重写接口中所有方法
  • 接口支持多继承(一个类可实现多个接口)
  • 接口不能被实例化,无构造方法
// Runnable接口定义(Java标准库)
@FunctionalInterface
public interface Runnable {public abstract void run();
}

八、异常处理机制

  • 异常处理五关键字:trycatchfinallythrowthrows
  • try:监控可能发生异常的代码块
  • catch:捕获并处理异常
  • finally:无论是否发生异常,都会执行的善后工作
  • throw:在方法内主动抛出异常(一般用于业务校验)
  • throws:在方法声明处声明可能抛出的异常

九、普通方法与多线程

线程执行示意图

线程执行流程

示例代码

package org.example;
public class ThreadTest1 extends Thread {@Overridepublic void run() {for (int i = 0; i < 20; i++) {System.out.println("threadtest1");}}public static void main(String[] args) {ThreadTest1 t = new ThreadTest1();t.start();for (int i = 0; i < 2000; i++) {System.out.println("test2");}}
}

常见错误总结

  1. 类名必须与文件名一致
  2. 继承的Thread类首字母需大写(Thread
  3. 主函数(main线程)需定义在当前类中
  4. for循环快捷写法:输入循环次数+.fori
  5. @Override是重写方法的注解(建议添加,确保语法正确)

十、实现Runnable接口

  • 步骤:
    1. 定义类实现Runnable接口
    2. 实现run()方法,编写线程执行体
    3. 创建线程对象,调用start()方法启动线程
  • 核心区别:
    • main()是Java程序的入口
    • run()是线程的入口(线程启动后执行的方法)

Runnable接口实现示意图


总结

核心知识体系

  1. 构造方法链:父类构造先于子类执行,有参构造需显式调用
  2. 方法重写:遵循"两同一小一大"原则(方法名同、参数同;子类异常小/访问权限大)
  3. 多态本质:向上转型 + 动态绑定 + 方法重写
  4. 类型安全:用instanceof避免ClassCastException

掌握这些面向对象核心机制,是构建健壮Java应用的基础。如果内容对您有帮助,请点赞👍、关注❤️、收藏⭐️。创作不易,您的支持是我持续创作的动力!
鼓励图标

http://www.dtcms.com/a/548292.html

相关文章:

  • 网站平台做推广方案沈阳百度seo排名优化软件
  • 淘宝网站店铺请人做软文推广特点
  • wordpress网站乱码邵阳 网站开发 招聘
  • 深圳做网站设计制作开发网站建设网页设计
  • 自己建网站做网店html代码表示什么
  • 官方网站包括哪几个网站深圳短视频seo哪家好
  • 学平面设计网站如何建网站详细步骤
  • iis默认网站启动不了网站策划怎么写
  • 手机网站建设团队学习网站建设有什么用
  • 青岛网站建设哪家网站模板怎么引用
  • 回龙观手机网站开发服务长春seo全网营销
  • 网站内容如何建设北京城乡建设学校网站
  • .net做的网站asp网站后台管理教程
  • 四川省建设工程质量安全协会网站wordpress天气js代码
  • 论坛网站的建立网站的推广和宣传方式
  • 洛阳做网站公司电话wordpress4.7发布模块
  • 襄阳做网站的公司有哪些主机 安装wordpress
  • 咸阳哪里做网站河北省做网站的企业
  • 《php网站开发实例教程》前端入门先学什么
  • 网站做推广页需要什么网站内容维护更新方法
  • 外贸多语言网站建设推广互联网站点
  • 企业网站建设服务优势鄂州建设工程造价信息网
  • 十堰网站推广网页设计与制作摘要
  • 做网站行业如何跟客户交流简洁的网站
  • 吉林建设教育协会网站注册公司一年需要多少费用
  • 北京电商网站建设哪家好网站的基础知识
  • 久久营销网站北京网站建设新鸿
  • 免费tickle网站手表哪个网站正品
  • 做视频导航网站深圳联合办公空间
  • 个人怎么建立网站移动开发是什么