Java之继承抽象类用法实例(三十一)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者

新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

🌻1.前言🌻2.Java继承抽象类介绍🌻3.代码实例🐓3.1 子类指向子类实例化🐓3.2 抽象类父类指向子类实例化

🌻1.前言

本篇目的:Java之继承抽象类用法实例

🌻2.Java继承抽象类介绍

Java继承是一种面向对象编程的特性,它允许子类继承父类的属性和方法。在Java中,抽象类(Abstract Class)是一种不能被实例化的类,它可以包含抽象方法(没有具体实现的方法)和具体实现的方法。下面我将详细介绍Java继承抽象类的基本概念和使用方法。

抽象类的定义 抽象类使用关键字abstract修饰,如下所示:

public abstract class Animal {

// 抽象方法

public abstract void sound();

// 具体实现的方法

public void sleep() {

System.out.println("动物在睡觉");

}

}

继承抽象类 子类通过extends关键字继承抽象类,并必须实现抽象类中的所有抽象方法。否则,子类也必须被声明为抽象类。

public class Dog extends Animal {

// 实现抽象方法

@Override

public void sound() {

System.out.println("汪汪汪");

}

}

抽象类的特点 (1)抽象类不能被实例化,只能通过子类来实现具体的对象。 (2)抽象类可以包含属性、方法、构造器,但构造器不能直接被调用,需要在子类中通过super关键字调用。 (3)抽象类可以包含抽象方法和具体实现的方法,具体实现的方法可以被子类继承和使用。 (4)抽象类可以继承另一个类(抽象类或具体类)并添加新的抽象方法或实现。抽象类的优势 (1)抽象类为子类提供了一个公共的、规范的定义,使得子类可以共享方法实现。 (2)抽象类可以包含抽象方法,使得子类必须实现这些方法,从而保证子类具有某些共性。 (3)通过抽象类,可以更好地实现多态性。使用场景 抽象类常用于以下场景: (1)当多个类具有相同的方法和属性,但具体实现不同,可以使用抽象类来定义这些共同点。 (2)当需要定义一个公共的接口,但不希望这个接口被直接实例化时,可以使用抽象类。

Java继承抽象类是一种强大的面向对象编程特性,它可以帮助我们更好地组织和复用代码,实现多态性。通过抽象类,我们可以定义具有共性的方法,并在子类中实现具体的业务逻辑。在实际开发过程中,合理使用抽象类可以提高代码的可读性、可维护性和扩展性。

🌻3.代码实例

🐓3.1 子类指向子类实例化

Animal.java

public abstract class Animal {

protected String name;

public Animal(String name) {

this.name = name;

System.out.println("name = " + name);

}

public void test(){

System.out.println("test() is called\n");

}

}

Dog.java

public class Dog extends Animal {

public Dog(String name,int count) {

super(name); // 调用父类构造方法,初始化name

}

public static void main(String[] args) {

//v1.0

Dog dog = new Dog("HuaWei", 5678);

dog.test();

}

}

打印:

name = HuaWei

test() is called

🐓3.2 抽象类父类指向子类实例化

Animal.java

public abstract class Animal {

protected String name;

public Animal(String name) {

this.name = name;

System.out.println("name = " + name);

}

public void test(){

System.out.println("test() is called\n");

}

}

Dog.java

public class Dog extends Animal {

public Dog(String name,int count) {

super(name); // 调用父类构造方法,初始化name

}

// main 函数,测试代码

public static void main(String[] args) {

//v2.0

Animal aml = new Dog("XiaoMi", 1234);

aml.test();

}

}

打印:

name = XiaoMi

test() is called

2025-12-16 12:10:37