Java基础 第二节 第十二课

举报
我是小白呀iamarookie 发表于 2021/09/09 23:25:44 2021/09/09
【摘要】 抽象类 概述由来定义 abstract 使用格式抽象方法抽象类抽象的使用 注意事项 概述 由来 父类中的方法, 被它的子类们重写. 子类各自实现都不尽相同. 那么父类的方法声明和...

概述

由来

父类中的方法, 被它的子类们重写. 子类各自实现都不尽相同. 那么父类的方法声明和方法主体, 只有声明还有意义, 而方法主体则没有存在的意义了. 我们把没有方法主体的方法称为抽象方法. Java 语法规定, 包含抽象方法的类就是抽象类.

定义

  • 抽象方法: 没有方法体的方法
  • 抽象类: 包含抽象方法的类

abstract 使用格式

抽象方法

使用 abstract 关键词修饰方法, 该方法就成了抽象方法, 抽象方法只包含一个方法名, 没有方法实体.

定义格式:

修饰符 abstract 返回值类型 方法名 (参数列表);

  
 
  • 1

代码举例:

public abstract void run();

  
 
  • 1

抽象类

如果一个类包含抽象方法, 那么该类必须是抽象类.

定义格式:

abstract class 类名字 {

}

  
 
  • 1
  • 2
  • 3

代码举例:

public abstract class Animal {
    public abstract void run();
}

  
 
  • 1
  • 2
  • 3

抽象的使用

继承抽象类的子类必须重写父类所有的抽象方法. 否则, 该子类也必须声明为抽象类. 最终, 必须有子类实现父类的抽象方法. 否则, 从最初的父类到最终的子类都不能创建对象, 失去意义.

代码举例:

public class Cat extends Animal {
    @Override
    public void run() {
        System.out.println("小猫在墙头走...");
    }
}
class CatTest {
    public static void main(String[] args) {
        // 创建子类对象
        Cat c = new Cat();

        // 调用run方法
        c.run();  // 输出结果: 小猫在墙头走...
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

此时的方法重写, 是子类对父类抽象方法的完整试下. 我们将这种方法重写的操作, 也叫做实现方法.

注意事项

关于抽象类的使用, 以下为语法上要注意的细节. 虽然条目较多, 但若理解了抽象的本质, 则无需死记硬背.

  1. 抽象类不能创建对象, 如果创建,编译无法通过而报错. 只能创建其非抽象子类的对象. (假设创建了抽象类的对象, 调用抽象方法, 而抽象方法没有具体的方法体, 没有意义)
  2. 抽象类中, 可以有构造方法, 是供子类创建对象是, 初始化父类成员使用的. (子类的构造方法中, 有默认的 super(), 需要访问父类构造方法)
  3. 抽象类中, 不一定包含抽象方法, 但是有抽象方法的类必定是抽象类. (未包含抽象方法的抽象类, 目的就是不想让调用者创建该类对象, 通常用于某些特殊的类结构设计)
  4. 抽象类的子类, 必须重写抽象父类中所有的抽象方法. 否则, 编译无法通过而报错. 除非该子类也是抽象类. (假设不重写所有抽象方法, 则类中可能包含抽象方法. 那么创建对象后, 调用抽象的方法, 没有意义)

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/110116859

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。