抽象类和(上)

news2025/7/17 8:21:58

大家好,又见面了,今天和大家浅谈一下抽象类

抽象类存在的意义就是被继承

抽象类

🐷1.抽象类的定义

🐱‍🚀2.抽象类的语法

💚3.抽象类的概念

🚀4.抽象类的作用

1.抽象类的概念

什么是

好问题,那么什么是普通类呢,普通类就是没有abstract修饰的方法,所以抽象类就是abstract修饰的类

所有的对象都是通过类来描述的,但不是所有的类都用来描述对象的,如果一个类中没有包含足够的信息去描述一个对象,那么这个类叫做抽象类

2.抽象类的语法

抽象类使用abstract 来修饰,抽象类中被abstract修饰的方法叫做抽象方法,

public   abstract class Shape {
    public abstract  void draw();
    public  void func(){
        System.out.println("画画的baby");
    }
}

 抽象方法不需要具体的实现

抽象类也是类,也可以在抽象类的内部进行普通方法的书写,普通成员变量以及普通成员方法

抽象类中不一定有抽象方法,但是有抽象方法的类一定叫做抽象类

3.抽象类特性

1.抽象类不能直接实例化对象

2.抽象方法不能被private修饰

3.抽象方法是不能别final和static 修饰的,因为抽象类中的方法在子类被重写

abstract  class Shape {
    abstract void draw();
    public void func1(){
        System.out.println("哈哈哈");
    }

}

class  Circle extends Shape{


    @Override
    void draw() {
        System.out.println("画圆");
    }
}


public class TestDemo {


}

4.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用abstract修饰

5. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类

6. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量
abstract  class Shape {
      public int age;
      public String name;

    public Shape(int age, String name) {
        this.age = age;
        this.name = name;
    }

    abstract void draw();
    public void func1(){
        System.out.println("哈哈哈");
    }

}

class  Circle extends Shape{
            public Circle(int age,String name){
                super(5,"小黑");
            }

    @Override
    void draw() {
        System.out.println("画圆");
    }
}


public class TestDemo {


}

抽象类的作用

抽象类本身不能被实例化 , 要想使用 , 只能创建该抽象类的子类 . 然后让子类重写抽象类中的抽象方法 .
所以他可以帮助我们校验代码是否正确

内容就这么多,希望看到的大佬斧正,谢谢大家,下期再见!!!886!!!

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计基于个性化的汽车购买推荐系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

如何在Ubuntu 22.04上安装Linux 内核 6.0?

内核是任何基于 Linux 的操作系统的核心部分,它充当计算机系统软件和硬件之间的桥梁,还提供用户和应用程序与计算机交互所需的接口。内核提供了许多功能,包括进程调度、资源分配、设备管理、中断处理、内存管理和进程。 在撰写本文时&#x…

轻松学会jQuery选择器的用法

文章目录⛳️ 选择器✨ 属性选择器✨ 包含选择器✨ 位置选择器✨ 过滤选择器✨ 反向选择器⛳️ 快速投票⛳️ 选择器 本篇重点讲解jQuery中丰富的选择器,以及他们的基本用法。CSS的选择器均可以用jQuery的$进行选择,部分浏览器对CSS3的选择器支持不全&am…

大道至简,凯里亚德酒店成为酒店投资圈万众瞩目的“新”星

作为近年酒店市场的热门领域,中端酒店行业的发展一直颇受关注。随之而来的就是中端酒店品牌的不断增加,以及中端商旅、度假型酒店规模的不断扩大,经行业资深人士分析,未来中端酒店将成为酒店市场的主力产品。鉴于市场的发展趋势&a…

Netty中的缓存Bytebuf

首先我们来明确一下Buffer(缓存) JavaNIO中的Buffer、Netty中的Buffer、Netty中的Bytebuf这是3个不同的类,但实现的内容和完成的功能几乎一致,最原始的是JavaNIO中的Buffer实现,最先进的是Netty中Bytebuf的实现&#x…

10 分钟, 带你彻底掌握 SQL 多表查询

1.前言 多表查询,也称为多表连接查询;作为关系型数据库最主要的查询方式,在日常工作中被广泛使用 常见的多表查询操作包含:子查询、内连接、左外连接、右外连接、完全连接、交叉连接 本篇文章将利用一个实例逐一介绍这些操作 …

【华为OD机试真题 python】 太阳能板最大面积【2022 Q4 | 100分】

■ 题目描述 给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。 但航天器不同位置的支柱长度不同,太阳能…

做一名既有宽度也有深度的测试!

一名好的测试人员,在工作中,不仅要做到有宽度更要有深度! 何为宽度?测试用例的覆盖面更广更全。 测试人员设计测试用例的时候可以分为这几种类型: 一:将prd的需求描述copy到测试用例。 二:细…

Java线程安全与对象头结构信息

文章目录一 线程安全问题1.1 什么是线程安全问题?1.2 自增运算真的线程安全吗?1.3 Synchronized锁表现三种形势?1.3.1 synchronized同步方法1.3.2 synchronized同步代码块1.3.3 synchronized静态方法1.3.4 总结二 Java对象结构与内置锁2.1 Ja…

浏览器自动化利器Selenium IDE使用指南

文章目录前言一、安装及界面1.1 安装1.2 界面二、常用命令2.1 通用2.2 表单2.3 流程控制三、常用操作3.1 命令操作3.2 js脚本3.3 录制3.4 导出四、实际操作例子4.1 红黑树插入可视化4.2 github下载参考前言 Selenium 是一个浏览器自动化框架,专门为 W3C WebDriver …

创龙AD+全志T3 TL7606I模块测试

上一篇:创龙AD全志T3 ad_display 开发案例(2) 前 言 本文主要介绍基于全志科技T3(ARM Cortex-A7)处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。 …

力扣(LeetCode)775. 全局倒置与局部倒置(C++)

模拟 理解题&#xff0c;全局倒置就是不相邻的逆序对&#xff0c;局部倒置就是相邻的逆序对。提示中给出&#xff0c;0<nums[i]<n0 < nums[i] < n0<nums[i]<n &#xff0c;其中 nnums.lengthn nums.lengthnnums.length , numsnumsnums 中的所有整数 互不相…

什么是 rektguy NFT系列?

rektguy 系列是一组闪烁着霓虹灯颜色的饮酒骷髅 该项目背后的团队没有提出路线图或分支项目 艺术家 OSF 已经在 NFT 生态系统中拥有一个成熟的粉丝群体 rektguy NFT系列由 8,814 个 NFT 组成&#xff0c;展示了穿着连帽衫、用瓶子喝水的骷髅。这些人物由深黑色背景上闪烁的霓…

[论文阅读] 颜色迁移-EM概率分割的局部颜色迁移

[论文阅读] 颜色迁移-EM概率分割的局部颜色迁移 文章: Local Color Transfer via Probabilistic Segmentation by Expectation-Maximization,[paper][code(未公开)] 本文目的为: 图像局部颜色迁移. 1-符号说明 在进行本文算法原理说明之前, 先对一些英文缩写进行简单说明: …

一次nacos 导致的 CPU 飙高问题

序 今天下午突然 出现 测试环境 cpu飙高&#xff0c;干到了 60%&#xff0c;其他项目 响应时间明显变长。。。有点吓人&#xff0c;不想背锅 项目背景 出问题的项目是 需要连接各个不同nacos 和不同的 namespace 进行对应操作的 一个项目&#xff0c;对nacos的操作都是httpC…

JavaScript break 、 continue和return 语句介绍

目录 一、Break 1、介绍 2、代码&#xff1a; 3、示例&#xff1a; 二、Continue 1、介绍 2、代码 3、示例 三、break 、continue总结&#xff1a; 代码 示例 四、Return 1、简介 2、语法&#xff1a; 3、代码 4、示例 五、return、break、continue总结 1、re…

02【MyBatis框架的CRUD】

二、MyBatis框架的CRUD 重新搭建一个新的MyBatis环境&#xff0c;进行MyBatis的CRUD测试&#xff1b; 参考&#xff1a;01【MyBatis-快速入门】 2.1 新增 2.1.1 dao接口 package com.dfbz.dao;/*** author lscl* version 1.0* intro:*/ import com.dfbz.entity.Emp;public i…

秒杀系统设计(微服分布式)

流程图(分布式) 例子 现场要卖1000件下面这个婴儿纸尿裤&#xff0c;根据以往这样秒杀活动的数据经验来看&#xff0c;目测来抢这100件纸尿裤的人足足有10万人 问题 高并发 秒杀的特点就是这样时间极短、 瞬间用户量大。 正常的店铺营销都是用极低的价格配合上短信、APP的…

自制操作系统日记(6):静态桌面初步

代码仓库地址&#xff1a;https://github.com/freedom-xiao007/operating-system 简介 在上篇中我们成功的加载跳转执行了C语言的代码&#xff0c;本篇中将跟随书籍&#xff0c;初步展示了一个系统页面的初步界面&#xff0c;看到桌面那刻还是有点意思的 最终结果展示 不多…

贵的键盘就一定好吗?程序员该怎样选择一款适合自己的键盘呢,来这里参考下吧

&#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#xff1a;游戏制作 &…