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

服务好的南昌网站设计如何做兼职网站平台

服务好的南昌网站设计,如何做兼职网站平台,网页设计作品文章,网站建设云引言:为什么必须掌握继承与多态? 在Java开发中,继承与多态是构建可扩展、易维护系统的基石: 继承:实现代码复用,建立清晰的类层次结构多态:提升代码灵活性,实现"编写一次&#…

引言:为什么必须掌握继承与多态?

在Java开发中,继承与多态是构建可扩展、易维护系统的基石:

  • 继承:实现代码复用,建立清晰的类层次结构
  • 多态:提升代码灵活性,实现"编写一次,到处运行"
  • 框架基础:Spring等框架大量使用多态实现依赖注入

一、extends关键字:构建类层次结构

1.1 继承的必要性

// 错误示范:重复代码
class Dog {void eat() { System.out.println("Dog eats"); }
}class Cat {void eat() { System.out.println("Cat eats"); }
}

继承优化后

class Animal {void eat() { System.out.println("Animal eats"); }
}class Dog extends Animal {} // 自动继承eat方法
class Cat extends Animal {}

1.2 extends核心规则

语法结构

class SubClass extends SuperClass {// 新增/重写方法
}

关键限制

  • Java仅支持单继承(可通过接口实现多继承)
  • 子类构造函数必须调用父类构造函数(显式/隐式)

执行顺序

class Parent {Parent() { System.out.println("Parent constructor"); }
}class Child extends Parent {Child() {super(); // 隐式调用System.out.println("Child constructor");}
}// 输出顺序:
// Parent constructor
// Child constructor

1.3 继承中的访问控制

修饰符本类同包子类其他包
public✔️✔️✔️✔️
protected✔️✔️✔️
default✔️✔️
private✔️

二、方法重写与@Override注解

2.1 方法重写的必要性

场景示例

class Shape {void draw() {System.out.println("Drawing shape");}
}class Circle extends Shape {@Overridevoid draw() { // 实现具体图形绘制System.out.println("Drawing circle");}
}

核心价值

  • 保持接口一致性,实现多态
  • 子类自定义实现细节
  • 遵循开闭原则(对扩展开放,对修改关闭)

2.2 重写规则验证

class Parent {protected Number calculate(int a) throws Exception {return a * 2;}
}class Child extends Parent {@Overridepublic Integer calculate(int a) { // 合法重写return a * 3;}
}

规则清单

  1. 方法名、参数列表必须完全相同
  2. 返回类型兼容(协变返回类型)
  3. 访问权限不能更严格
  4. 抛出异常不能更广泛

2.3 @Override注解详解

三大作用

  1. 编译器检查:确保方法正确重写
  2. 代码可读性:明确标识重写方法
  3. 维护保障:父类方法修改时及时报错

反例警示

class Child extends Parent {// 误写为calcultae(拼写错误)void calcultae(int a) { ... } // 不会触发重写
}

三、动态绑定:多态的实现基石

3.1 动态绑定的必要性

经典案例

Animal myPet = new Dog();
myPet.eat(); // 实际执行Dog的eat方法myPet = new Cat();
myPet.eat(); // 自动切换为Cat的eat方法

核心价值

  • 运行时决定方法实现
  • 实现接口与实现分离
  • 支持插件式架构设计

3.2 JVM实现原理

执行流程

  1. 对象创建时确定实际类型(Dog/Cat)
  2. 方法调用通过虚方法表(VMT)查找
  3. 调用invokevirtual字节码指令

内存结构

类型指针
Object
+__proto__: Class
Class
+vtable: Method[]

3.3 静态绑定对比

静态绑定场景

  • private/final/static方法
  • 构造函数调用
  • 对象强制类型转换

性能差异

  • 静态绑定:直接地址调用(更快)
  • 动态绑定:需要查表(约10%性能损耗)

四、工程实践建议

  1. 组合优于继承:优先使用组合实现代码复用

    class Vehicle {Engine engine = new Engine(); // 组合方式
    }
    
  2. 模板方法模式

    abstract class AbstractProcessor {final void process() {validate();execute();}abstract void execute();void validate() { /* 默认实现 */ }
    }
    
  3. Liskov替换原则:子类必须完全替代父类

  4. 避免方法过度重写:通过final关键字限制重写

总结

继承与多态是面向对象编程的核心机制,掌握extends关键字的正确使用、方法重写的规范以及动态绑定的底层原理,能够显著提升代码的可维护性和扩展性。在实际开发中,应合理设计类层次结构,善用多态特性,同时注意遵循设计原则避免滥用继承,最终构建出灵活、健壮的软件系统。

http://www.dtcms.com/wzjs/586677.html

相关文章:

  • 论坛网站 备案wordpress 资讯类 模版
  • 网站建设公司兴田德润i简介现在免费的外贸平台有哪些
  • 外贸网站建设 翻译军事新闻内容摘抄
  • 鄂州做网站的公司农业网站建设策划书
  • 涉县网站安徽服装网站建设
  • 一个可以做行程的网站专业仿站网站建设
  • 深圳网站建设选哪家计算机编程入门教学视频教程
  • 北京建设公司网站wordpress 导航地图
  • 深圳营销型网站建设 龙华信科如何做网站数据报表
  • 网站功能模块报价aso关键词排名优化是什么
  • html5博客网站模板云主机玩游戏怎么样
  • wordpress站点信息修改版权在国外做网站网站犯法吗
  • 网站建设市场报价网站建设公众号管理
  • 上海门户网站怎么登录东西湖建设局网站
  • 什么网站做英语翻译练习不关闭网站备案
  • 网站制作常见问题上海快速建站平台
  • 安全员怎么网站中做备案搜狗网站入口
  • 网站流量如何盈利开发网站软件
  • 网站板块的策划方案国家重点项目建设库网站
  • 直通车关键词怎么选 选几个桌子seo关键词
  • 文明网站建设总结网站套餐报价 模版
  • 化工网站关键词优化厦门公司网页制作
  • 响应式 网站 设计软件seo搜索排名优化
  • 海宁市住房与建设规划局网站制作钓鱼网站属于什么罪
  • 影视网站视频接口怎么做圣沃建设集团官方网站
  • 凡科可以做返利网站吗新品牌推广方案
  • 网站根目录 本地共享提供建站服务的网络公司的比较
  • 科技资讯 哪个网站好百度快速排名技术培训教程
  • 没网站怎么做京东联盟天津做网站找哪家公司好
  • 忻州网站建设公司网页设计实训报告主要内容