2.2. 继承与多态
2023/6/1 3:22:08
本文主要是介绍2.2. 继承与多态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
继承和多态是面向对象编程的两个重要概念,它们使得我们可以创建更加通用、可扩展的代码。
2.2.1. 继承
继承是一种创建新类的方式,新类(子类)从现有类(父类)继承属性和方法。子类可以重写或扩展父类的功能。
要创建一个子类,可以使用 extends
关键字:
class SubClassName extends ParentClassName { // 子类的成员变量和方法 }
示例1:继承
// 父类 class Animal { String name; int age; void sleep() { System.out.println(name + " is sleeping."); } } // 子类 class Dog extends Animal { String breed; void bark() { System.out.println(name + " is barking."); } } class Main { public static void main(String[] args) { Dog myDog = new Dog(); myDog.name = "Buddy"; myDog.age = 3; myDog.breed = "Golden Retriever"; myDog.bark(); // 子类的方法 myDog.sleep(); // 继承自父类的方法 } }
2.2.2. 方法重写(覆盖)
子类可以重写父类的方法,以便在调用子类对象的该方法时使用子类的实现而不是父类的实现。重写方法的返回类型、方法名和参数列表必须与父类相同。
class SubClassName extends ParentClassName { @Override // 注解,表明该方法重写了父类的方法,非必须但建议使用 ReturnType methodName(Parameters) { // 子类的实现 } }
示例2:方法重写
// 父类 class Animal { String name; int age; void sleep() { System.out.println(name + " is sleeping."); } } // 子类 class Dog extends Animal { String breed; void bark() { System.out.println(name + " is barking."); } @Override void sleep() { System.out.println(name + " the " + breed + " is sleeping."); } } class Main { public static void main(String[] args) { Dog myDog = new Dog(); myDog.name = "Buddy"; myDog.age = 3; myDog.breed = "Golden Retriever"; myDog.bark(); myDog.sleep(); // 调用子类重写的方法 } }
2.2.3. 多态
多态是一个对象在不同情况下表现出不同的行为。多态是通过父类引用指向子类对象实现的。
ParentClassName objectName = new SubClassName();
示例3:多态
// 父类 class Animal { String name; int age; void sleep() { System.out.println(name + " is sleeping."); } } // 子类 class Dog extends Animal { String breed; void bark() { System.out.println(name + " is barking."); } @Override void sleep() { System.out.println(name + " the " + breed + " is sleeping."); } } class Main { public static void main(String[] args) { // 多态 Animal myAnimal = new Dog(); myAnimal.name = "Buddy"; myAnimal.age = 3; myAnimal.sleep(); // 调用子类重写的方法 // 注意:无法访问子类特有的方法和属性 // myAnimal.bark(); // 错误 // myAnimal.breed = "Golden Retriever"; // 错误 } }
多态的主要优点是代码的可扩展性和维护性。当你需要添加新的子类时,不需要修改使用多态的代码。
2.2.4. 抽象类和接口
抽象类和接口是 Java 中实现多态和代码复用的两种方式。
-
抽象类:包括抽象方法(没有实现的方法)和具体方法。子类必须实现所有抽象方法。使用
abstract
关键字定义抽象类和抽象方法。abstract class AbstractClassName { // 抽象方法 abstract ReturnType methodName(Parameters); // 具体方法 ReturnType methodName(Parameters) { // 方法实现 } } ```
-
接口:定义一组方法签名(没有实现的方法)。实现接口的类必须实现所有方法。使用
interface
关键字定义接口。interface InterfaceName { // 方法签名(没有方法体) ReturnType methodName(Parameters); } ```
示例4:抽象类和接口
// 抽象类 abstract class Animal { String name; int age; abstract void makeSound(); void sleep() { System.out.println(name + " is sleeping."); } } // 接口 interface Pet { void play(); } // 子类实现抽象类和接口 class Dog extends Animal implements Pet { String breed; @Override void makeSound() { System.out.println(name + " is barking."); } @Override public void play() { System.out.println(name + " is playing."); } } class Main { public static void main(String[] args) { Dog myDog = new Dog(); myDog.name = "Buddy"; myDog.age = 3; myDog.breed = "Golden Retriever"; myDog.makeSound(); // 实现抽象类的抽象方法 myDog.sleep(); // 继承自抽象类的具体方法 myDog.play(); // 实现接口的方法 } }
这是关于继承和多态的基本介绍。通过这些概念,你可以创建更加灵活和可扩展的代码。在实际开发中,你会遇到更多复杂和实用的用例,通过多做练习和深入学习,你将更好地掌握这些知识点。
这篇关于2.2. 继承与多态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24谷歌邮箱注册手机号验证不了怎么办?独家揭秘,Gmail 注册手机号验证困局!
- 2024-12-24双旦节备战指南:管理软件是企业成功的秘密武器
- 2024-12-242024新能源汽车门店管理升级:看板工具的多重功能与应用解析
- 2024-12-24销售管理不再复杂!团队效率倍增的秘密武器
- 2024-12-24管理软件助力四六级:是学习规划师还是提分神器?
- 2024-12-24汽车经销商的精益管理:信息化工具如何破解运营难题?
- 2024-12-24打造专属电影清单,管理软件如何成为幕后 “导演”?
- 2024-12-24如何通过看板工具优化新能源汽车供应商管理?提升效率与质量控制的全新方法
- 2024-12-24读书清单大升级:管理软件如何施展魔法?
- 2024-12-24精准跟进每一位客户:新能源汽车门店管理神器推荐