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

javaoop-(继承-重写-抽象-super)

javaoop面向对象中的继承,重写,抽象,和super关键字

01--继承

1、继承:子类可以拥有父类中非私有化的内容。

2、继承父类使用extends关键字

public class 子类 extends 父类{}
//父类 public class Pet{ //共有的属性特征 String name; //共有的方法 public void eat(){ System.out.println(name); } } //子类继承 public class Dog extends Pet{ //在类名后用 extends 加上父类类名 }

3、继承的优点:增强代码的复用性,扩展性和维护性更好

4、当父类和子类中有同名属性时,this.属性 的查找顺序是:先找子类,没有再找父类(补充:如果父类和子类中有同名属性是想要父类的可以使用 super.)

5、如果想在子类中调用父类中的属性,则用super.进行调用

例如:

//父类 protected String model; //父类方法 public abstract void work(); //子类 String model; public void work(){ System.out.println(this.model+"开始打孔......"); } this.现找子类,再找父类 super.代表父类

6、再Java中所有类都直接或间接的继承了Object类

父类 public class Pet extends Object{ 父类也能继承,继承Object } 子类 public class Dog extends Pet/*,Object*/{ 子类继承父类,也间接的继承了Object }

7、在java中,只支持单继承,一个类只能继承一个父类

02--重写

1、父类中的方法不能满足子类的要求,就可以在子类中对父类的方法进行重新定义(覆盖),以满足条件

重写的前提:在创建关系中(比如继承)

public class Person { //属性 String name; int age; //父类中的运动的方法 public void run(){ System.out.println("人类会跑步"); } } public class Employee extends Person{ //重写父类的方法,以满足子类中的更多需求 public void run(){ System.out.println("员工或以竞走的方式运动"); } } 重写父类中run的方法

2、在继承中,子类方法的声明和父类的一致,访问修饰符和父类一样或比父类大,方法的实现(方法体)不一样

// 父类 class Animal { // 父类方法:protected protected void sleep() { System.out.println("动物睡觉"); } } // 子类 class Cat extends Animal { // 重写:访问修饰符可以一样(protected)或更大(public) public void sleep() { // 声明和父类一样,权限更大 System.out.println("猫趴着睡觉"); // 方法体不同 } }

访问权限从小到大:private < 默认 < protected < public

  • 父类 public → 子类只能 public
  • 父类 protected → 子类可以 protected /public
  • 父类 default → 子类可以 protected/public
  • 父类 private →不能重写(private 子类根本看不见)

03--抽象

1、抽象用abstract修饰,可以修饰类和方法

​ public abstract class Student{ 抽象类 抽象类中的抽象方法 public abstract void show(); } ​

2、抽象不能实例化,只能通过子类继承由子类进行实例化

class Cat extends Student {} Cat c = new Cat();

3、抽象方法没有方法体,可以在子类中进行重写

public abstract class Student{抽象类 抽象方法 public abstract void show(); } public class Cat extends Student{继承 重写父类中的方法 public void shou(){ System.out.println("重写后的方法体"); } }

4、抽象方法一定在抽象类中,抽象类中不一定都是抽象方法,也可以有普通方法,构造方法,但抽象方法必须只能在抽象类中出现。

04--super关键字

super关键字的作用:

1、super代表父类

在父类与子类中有同名的属性是,在子类中需要调用父类的可以用super.属性名 public abstract class Student{ 抽象类 属性 protected String name; 抽象方法 public abstract void show(); } public class Cat extends Student{ 继承 属性 String name; 重写方法 public abstract void show(){ System.out.println("他叫"+super.name或this.name); super代表父类,this会先找子类中的,没有再找父类中的 }; }

2、super可以调用父类中非私有化的属性,方法构造方法

如果父类中的方法或属性用private修饰,在子类中用super就调用不到

3、super调用构造方法时必须写在第一句

public Dog(String name) { // super 调用父类构造,必须写在第一行! super(name); this.age=age; System.out.println("子类构造执行:" + name); }

4、super和this调用构造方法时不能同时出现

class Animal { public Animal() { System.out.println("父类构造"); } } class Dog extends Animal { public Dog() { super(); // 调用父类构造,必须第一行 System.out.println("子类构造"); } }
http://www.jsqmd.com/news/687308/

相关文章:

  • 立创EDA转AD20的库文件迁移:一个被忽略的‘解压’步骤,以及如何正确保存你的原理图库和PCB库
  • 别再死记MobileNetV2结构了!从‘倒残差’设计思路,手把手教你用PyTorch复现核心模块
  • 实测 Skyoo:美国原装进口品牌,靠谱的核心资质与配方硬核实力 - 品牌企业推荐师(官方)
  • 数字员工系统有多强?会微信自动回复客户、会公域评论区找客户、会剪短视频发平台、会私信互动拓客
  • 终极AssetRipper指南:如何轻松提取Unity游戏资产
  • 1500对工业级图像!DeepPCB:开启PCB缺陷检测的AI时代
  • 2026年襄阳医疗器械线束生产企业推荐,好用的品牌怎么收费 - 工业推荐榜
  • VisualCppRedist AIO:Windows系统运行库终极一站式解决方案
  • 美好玉米肠 - 品牌企业推荐师(官方)
  • SMUDebugTool:解锁AMD锐龙处理器的隐藏性能,三招解决游戏卡顿、渲染崩溃和虚拟机延迟问题
  • 用易语言+大漠插件写DNF脚本:从零搭建一个纯图色自动搬砖框架(附源码解析)
  • VideoSrt:5分钟掌握Windows平台免费视频字幕生成神器
  • WeChatMsg:三步永久保存微信聊天记录,生成专属年度报告
  • csdn_order_theory_markdown
  • 用GeoPandas+Matplotlib绘制专业级地图标注:从JSON数据到出版级可视化实战
  • Docker 27存储卷动态扩容全链路拆解:从libcontainerd调用流程、runc exec-hooks触发机制,到btrfs quota自动生效原理
  • ABAQUS材料密度定义避坑指南:从模态分析到显式动力学,哪些分析必须填?
  • 300+款RPG Maker插件终极指南:从零开始打造专业级游戏
  • 2026年塑料加工、模具加工、注塑件定制厂家优选榜单:涵盖塑料模具定制、精密注塑加工、塑料外壳加工的专业解决方案指南 - 海棠依旧大
  • 如何一次性解决Windows系统所有Visual C++运行库问题:VisualCppRedist AIO完全指南
  • 别再乱选模型了!Fluent中DPM、DEM、DDPM到底怎么选?从颗粒体积分数讲起
  • 告别模糊图像:用Python+OpenCV手把手实现维纳滤波图像去噪(附完整代码)
  • NCMconverter终极指南:3步轻松解锁网易云音乐加密格式
  • 告别Arduino!用ESP8266的AT指令5分钟搞定阿里云MQTT连接(保姆级避坑指南)
  • 微信聊天数据永久保存终极指南:让珍贵对话永不消失
  • MacOS系统下ComfyUI-Manager专业配置与优化实战指南
  • 超越数据手册:深入理解AXI EMC IP核的读写时序与FPGA内存子系统设计
  • Spring Boot 实现接口防止重放攻击验证(时间戳 + 随机数 + 签名)
  • 从脑电波到股票预测:变分模态分解(VMD)在Python里的3个实战应用
  • iOS 16透明小组件开发避坑指南:精准适配iPhone 14 Pro Max等全机型坐标