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

【java基础】抽象类和抽象方法

文章目录

  • 基本介绍
  • 抽象类
  • 抽象方法
  • 使用
  • 总结

基本介绍

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

个人理解就是,抽象类可能含有没有被实现的方法(抽象方法),抽象类不能被实例化,也就是不能够通过new关键字进行创建。
抽象类不一定有抽象方法,有抽象方法一定是抽象类。都是使用abstract进行标识

抽象类

下面就定义了一个抽象类

abstract class People {}

由于People根据不同角度可以进行很多的划分,所以我们就把People设计为抽象类。可以发现抽象类可以没有抽象方法

抽象方法

abstract class People {abstract String gerGender();
}

如果我们以性别来进行划分,那么我们定义一个方法,返回其性别。但是我们又不知道调用该方法的具体是什么性别,所以我们设计为抽象方法,让其子类来进行实现

使用

我们创建一个Man,Man会继承People。

class Man extends People {@OverrideString gerGender() {return "男";}
}

如果一个类继承了抽象类,那么就必须实现其所有的抽象方法,如果没有实现所有的抽象方法,那么当前类也应该使用abstract进行标识。

总结

  • 抽象类可以不含有抽象方法
  • 有抽象方法一定是抽象类
  • 抽象类不能实例化
  • 抽象类和普通类一样可以定义字段,实现方法
  • 如果一个类没有实现抽象父类的所有抽象方法,那么这个类也是抽象的,必须使用abstract进行修饰
  • 抽象类的对象变量只能引用非用非抽象类子类对象
http://www.lryc.cn/news/21403.html

相关文章:

  • RDD的内核调度【博学谷学习记录】
  • 二叉树——二叉搜索树的最小绝对差
  • git的使用(终端输入指令)下
  • python使用influxdb-client管理InfluxDB的bucket
  • 【c++】模板2—类模板
  • 基于SpringCloud的可靠消息最终一致性03:项目骨架代码(下)
  • linux如何彻底的删除文件
  • 数据仓库Hive的安装和部署
  • Python调用CANoe常见问题
  • 一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)
  • Java 解释器和即时解释器(JIT)之间的区别
  • Acwing 蓝桥杯 第二章 二分与前缀和
  • CSDN原力增长规则解读 实测一个月
  • HDMI协议介绍(三)--InfoFrame
  • 【RocketMQ】源码详解:Broker端消息储存流程、消息格式
  • IoT项目系统架构案例2
  • Vue echarts封装
  • 蓝桥杯入门即劝退(二十二)反转字符(不走寻常路)
  • 数据仓库Hive
  • 嵌入式 STM32 步进电机驱动,干货满满,建议收藏
  • 详讲函数.2.
  • 行测-判断推理-图形推理-位置规律-旋转、翻转
  • linux shell 入门学习笔记15 shell 条件测试
  • Apollo(阿波罗)分布式配置安装详解
  • Vue3之组件
  • 【网络】套接字 -- UDP
  • Lambda原理及应用
  • 运动耳机推荐、最值得入手的运动耳机清单共享
  • c盘爆满--如何清理电脑C盘
  • Nginx配置web服务器及部署反向代理