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

继承 示例

1.基本继承与方法重写

package com.example.demo1;// 父类:动物
class Animal {String name;public Animal(String name) {this.name = name;}// 动物发出声音的方法public void makeSound() {System.out.println(name + " 发出了一种声音");}
}// 子类:狗,继承自 Animal
class Dog extends Animal {public Dog(String name) {super(name); // 调用父类的构造方法}// 重写父类的 makeSound 方法@Overridepublic void makeSound() {System.out.println(name + " 汪汪汪");}
}// 子类:猫,继承自 Animal
class Cat extends Animal {public Cat(String name) {super(name); // 调用父类的构造方法}// 重写父类的 makeSound 方法@Overridepublic void makeSound() {System.out.println(name + " 喵喵喵");}
}public class InheritanceExample {public static void main(String[] args) {Animal animal = new Animal("动物");Dog dog = new Dog("旺财");Cat cat = new Cat("咪咪");animal.makeSound();dog.makeSound();cat.makeSound();}
}

继承Dog 和 Cat 类通过 extends 关键字继承了 Animal 类,这意味着它们可以使用 Animal 类的属性和方法。

继承特点:子类可以继承父类的非私有属性和方法,减少代码重复。

方法重写Dog 和 Cat 类重写了 Animal 类的 makeSound 方法,根据自身特点给出不同的实现。

2.多级继承

package com.example.demo1;// 父类:交通工具
class Vehicle {void move() {System.out.println("交通工具在移动");}
}// 子类:汽车,继承自 Vehicle
class Car extends Vehicle {@Overridevoid move() {System.out.println("汽车在公路上行驶");}
}// 子类:跑车,继承自 Car
class SportsCar extends Car {@Overridevoid move() {System.out.println("跑车在高速上飞驰");}
}public class MultilevelInheritanceExample {public static void main(String[] args) {Vehicle vehicle = new Vehicle();Car car = new Car();SportsCar sportsCar = new SportsCar();vehicle.move();car.move();sportsCar.move();}
}

多级继承SportsCar 类继承自 Car 类,Car 类又继承自 Vehicle 类,形成多级继承关系。

方法重写:每一级子类都重写了 move 方法,根据自身特点给出不同的实现。

3.继承与访问修饰符

package com.example.demo1;// 父类
class Parent {public int publicVar = 1;protected int protectedVar = 2;int defaultVar = 3;private int privateVar = 4;public void publicMethod() {System.out.println("父类的 public 方法");}protected void protectedMethod() {System.out.println("父类的 protected 方法");}void defaultMethod() {System.out.println("父类的 default 方法");}private void privateMethod() {System.out.println("父类的 private 方法");}
}// 子类
class Child extends Parent {public void accessParentMembers() {System.out.println(publicVar);System.out.println(protectedVar);System.out.println(defaultVar);// 不能访问 privateVar,因为它是私有的// System.out.println(privateVar); publicMethod();protectedMethod();defaultMethod();// 不能访问 privateMethod,因为它是私有的// privateMethod(); }
}public class InheritanceAndAccessModifiers {public static void main(String[] args) {Child child = new Child();child.accessParentMembers();}
}

继承与访问修饰符:子类可以继承父类的 publicprotected 和默认访问修饰符的属性和方法,但不能继承 private 属性和方法。

http://www.xdnf.cn/news/1102285.html

相关文章:

  • 飞算 JavaAI:开启 Java 开发新时代
  • 使用Python将目录中的JPG图片按后缀数字从小到大顺序纵向拼接,很适合老师发的零散图片拼接一个图片
  • Set 二分 -> 剑指算法竞赛
  • 【9】PostgreSQL 之 vacuum 死元组清理
  • Ant ASpin自定义 indicator 报错
  • 模拟开关、可编程增益仪表放大器电路
  • VLM-R1 + GRPO 算法完整复现全过程日志
  • 随手记录第二十话 -- Python3版本虚拟环境安装与AI的接入使用
  • RuoYi+Uniapp(uni-ui)开发商城系统
  • python学习DataFrame数据结构
  • 数据结构第一章复杂度的认识
  • 【java17】使用 Word 模板导出带替换符、动态表格和二维码的文档
  • iOS 数组如何设计线程安全
  • 提示工程:突破Transformer极限的计算科学
  • 工具分享--IP与域名提取工具
  • Spring 声明式事务:从原理到实现的完整解析
  • 小架构step系列11:单元测试引入
  • 分享|2025年机器学习工程师职业技术证书报考指南
  • 如何使用 Python 删除 Excel 中的行、列和单元格 – 详解
  • 《探索电脑麦克风声音采集多窗口实时可视化技术》
  • xFile:高性能虚拟分布式加密存储系统——Go
  • 上位机知识篇---Git符号链接
  • python的类型注解讲解
  • 云、实时、时序数据库混合应用:医疗数据管理的革新与展望(中)
  • 电力自动化的通信中枢,为何工业交换机越来越重要?
  • NLP_知识图谱_大模型——个人学习记录
  • CentOS 安装 JDK+ NGINX+ Tomcat + Redis + MySQL搭建项目环境
  • LVS-NAT模式配置
  • Java语言基础
  • Windos服务器升级MySQL版本