java中的抽象

news2024/9/22 13:35:05

1.当一个类中给出的信息不够全面时,(比方说有无法确定的行为),它给出的信息不足以描绘出一个具体的对象,这时我们往往不会实例化该类,这种类就是抽象类

2. 在Java中,我们通过在类前添加关键字abstract(抽象的)来定义抽象类。如下图所示 : 

import Demo09.*;

//abstract抽象类:类    extends:单继承~(接口可以多继承)
public abstract class Application {
    //~ 约束~有人帮我们实现~
    //abstract: 抽象方法,只有方法名字,没有方法的实现
    public abstract void dosomething();
    //1.不能去new这个抽象类,只能靠子类去实现它:约束。
    //2.抽象类中可以写普通方法。
    //3.抽象方法必须在抽象类中。
    //抽象的抽象:约束~
    
}

抽象方法:

我们将“只有方法声明,没有方法体”的一类方法统称为抽象方法抽象方法用关键字abstract修饰。需要注意的是,如果一个方法已经确定是抽象类,那么它绝不能再有方法体,即不能出现大括号,而是只需要在()后面添加一个分号即可。如果某个类中已经出现了抽象方法,那这个类必须定义成抽象类,否则会报错。

也就是说,拥有抽象方法的类一定是抽象类;但是抽象类不一定有抽象方法。

代码案例:

package Demo09;

public abstract class Worker {
    public int age;
    private String GH;
    private String name;
    public int Money;
    public Worker(){}
    public Worker(int age,int Money,String GH,String name){
        this.age=age;
        this.GH=GH;
        this.name=name;
        this.Money=Money;
    }
    public void show(){
        System.out.println("工人"+name+"的工号是:"+GH+"工龄为"+age);
    }
    public abstract void SetPay();
}
package Demo09;

import demo07.Person;

public class jingLi extends Worker{
    private int LV;
    public int TrueMoney;
    public jingLi(){}

    public jingLi(int LV,int TrueMoney, int age, int Money, String GH, String name) {
        super(age, Money, GH, name);
        this.LV=LV;
        this.TrueMoney=TrueMoney;
        SetPay();
    }
    public void SetPay(){
        this.TrueMoney=Money+TrueMoney+(500*LV)+age*1000;
    }
    public void show(){
        System.out.println("等级是:"+LV+"\n实际工资是"+TrueMoney);
    }
}
package Demo09;

public class xiaoshou extends Worker{
    private double XS;
    private double TrueMoney;
    public xiaoshou(){}

    public xiaoshou(double XS,double TrueMoney,int age, int Money, String GH, String name) {
        super(age, Money, GH, name);
        this.XS=XS;
        this.TrueMoney=TrueMoney;
        SetPay();
    }
    public void SetPay(){
        if (XS>=10000){
            this.TrueMoney=Money+0.09*XS;
        }else {
            this.TrueMoney=Money+0.08*XS;
        }
    }
    public void show(){
        super.show();
        System.out.println("销售额是"+XS+"\n实际工资是"+TrueMoney);
    }
}
package Demo09;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("基础工资为1000");
        Scanner input = new Scanner(System.in);
        System.out.println("请输入这个经理的等级:");
        int LV= input.nextInt();
        System.out.println("请输入这个经理的工龄:");
        int age= input.nextInt();
        System.out.println("请输入这个经理的10位工号:");
        String GH= input.next();
        System.out.println("请输入这个经理的名字:");
        String name=input.next();
        jingLi jl=new jingLi(LV,100,age,0,GH,name);
        jl.show();
        System.out.println("请输入这个销售的销售额:");
        int XS=input.nextInt();
        System.out.println("请输入这个经理的工龄:");
        int age1= input.nextInt();
        System.out.println("请输入这个经理的10位工号:");
        String GH1= input.next();
        System.out.println("请输入这个经理的名字:");
        String name1=input.next();
        xiaoshou xs=new xiaoshou(XS,0,age1,1000,GH1,name1);
        xs.show();
    }
}

输出结果:

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

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

相关文章

怎样的一款嵌入式 IDE 才是各阶段嵌入式开发者所喜欢的?

怎样的一款嵌入式 IDE 才是各阶段嵌入式开发者所喜欢的? 1 一定要快,现在流行的VSCODE用起来是很爽,但是VSCODE的插件什么的,也很容易拖卡,更不要说source insight了,SI有一个致命的特点就是,某个时候会闪…

Vatee万腾携手Wiki EXPO 2023悉尼峰会 共谱辉煌未来

悉尼,这座充满活力和创新的城市,即将成为全球商业的焦点。2023年11月16日,由WikiEXPO主办的Wiki Finance Expo Sydney 2023在悉尼马丁广场1号富丽敦酒店隆重开幕,这场金融博览会是澳大利亚今年规模最宏大、备受期待的金融科技盛会…

leetcode刷题日记:202. Happy Number( 快乐数)和203. Remove Linked List Elements(移除链表元素)

202. Happy Number( 快乐数) 这一题的解决与之前的循环链表比较类似,因为如果不是快乐数的话,在数字变化的过程中必然遇到了数字变换的循环,所以我们需要在变换的过程中判断是否遇到了循环,判断是否在一个序列中存在循环&#xf…

使用frp搭建内网穿透服务

使用frp搭建内网穿透服务 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 1.下载frp 下载地址 2.服务端安装 …

网络工程师网络配置经典例题(五)

1、配置SwitchA的单臂静态BFD特性 [SwitchA] bfd [SwitchA-bfd] quit [SwitchA] bfd 1 bind peer-ip 10.2.2.2 interface vlanif 10 source-ip 10.1.1.1 one-arm-echo [SwitchA-bfd-session-1] discriminator local 1 [SwitchA-bfd-session-1] min-echo-rx-interval 200 …

超长圆钢在线直线度检测 告别手工测量时代

圆钢的直线度指的是它的表面形状是否呈现出直线。直线度是圆钢的重要品质要求之一,与其物理性能密切相关。在工业制造中,如果圆钢的直线度不达标,就会影响其后续的加工和使用效果,严重时甚至会造成损失。 超长圆钢的检测&#xff…

【Python】12 GPflow安装

概述 GPflow 是一个基于TensorFlow 在 Python 中构建高斯过程模型的包。高斯过程是一种监督学习模型。 高斯过程的一些优点是: 不确定性是高斯过程的固有部分。高斯过程可以在不知道答案时告诉您。适用于小型数据集。如果您的数据有限,高斯过程可以从…

电磁场与电磁波part6、7--均匀平面波的反射与透射、导行电磁波

1、分界面上的反射系数 反射波电场振幅 与入射波电场振幅 的比值,即: 2、驻波系数(驻波比) 合成波的电场强度的最大值与最小值之比,即: 3、导波系统中电磁波的传输问题属于电磁场边值问题,即…

【云栖 2023】张治国:MaxCompute 架构升级及开放性解读

云布道师 本文根据 2023 云栖大会演讲实录整理而成,演讲信息如下 演讲人:张治国|阿里云智能计算平台研究员、阿里云 MaxCompute 负责人 演讲主题:MaxCompute架构升级及开放性解读 活动:2023云栖大会 MaxCompute 发展经历了三个阶…

Semi-Supervised Multi-Modal Learning with Balanced Spectral Decomposition

Y是所有模态的表征矩阵, ∑ i 1 d h ( λ i ) \sum_{i1}^dh(\lambda_i) ∑i1d​h(λi​) is the proposed eigenvalue-based objective function,the final similarity matrix W for the multimodal data as a block matrix 辅助信息 作者未提供代码

【C++百宝箱】语法总结:引用 | 内联函数 | auto | 范围for循环

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C入门宝典 🔥本文主要探讨C的语法,并深入了解C如何针对C语言中存在的不合理之处进行优化改进。 目录: ⌛…

LED植物生长灯怎么做更有效?聚光和散热不能少!

如何选择一款更有效的植物生长灯呢?相信这是很多朋友关心的问题。 其实方法很简单,以主流的LED植物生长灯为例,想要植物灯更有效、更好用,需要关注其是否有光学透镜和散热技术。 光学透镜对植物生长灯有什么样的作用&#xff1f…

OpenHarmony Ohpm安装历程(个人踩坑,最后安装成功)

大家好,我是【八戒,你又涨价了哎】 以下是我个人在学习OpenHarmony过程中的分享,请大家多多指教 目录 问题描述: 尝试解决 尝试一、 尝试二、 尝试三、 最终解决方案 问题描述: 当我学习到使用OpenHarmony的三方…

儿童家居服 I 童年很短不留遗憾,尽情打扮

厚实细腻的双面北极绒面料 软糯亲肤,上身效果极佳 经典宽松版型,对身材的包容性很强 帽子上的小熊刺绣精致又可 袖口处还有小熊掌的刺绣哦 松紧裤腰和束脚设计,防风保暖做到实处 这么好看又保暖的家居服喜不喜欢呢

中间件安全:Apache Tomcat 弱口令.(反弹 shell 拿到服务器的最高控制权.)

中间件安全:Apache Tomcat 弱口令. Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。 通过弱口令登录后台,部署 war 包…

TDengine TSZ 压缩算法优化背后的故事,要从一篇学术论文说起

TSZ 压缩算法是 TDengine 提供的一种可选压缩算法,专门用于浮点数据类型。它具有出色的压缩性能,能够在有损和无损状态下都提供更高的压缩率,甚至比默认压缩算法高出一倍,满足更高的数据存储需求。利用数据预测技术,TS…

Idea 2023.2.5配置(插件、Maven等)

IDEA2023.2.5配置 一. 插件Alibaba Java Coding Guidelines plugin supportMaven HelperMyBatisXSonarLintTranslationVuesion Theme 二. 自定义创建live template,快速写代码三. 修改全局配置3.1 Maven配置3.1.1 安装MavenStep1. 下载Step2. 安装Step3. 创建系统环…

百度爬虫的工作原理解析

百度作为中国最大的搜索引擎,其工作原理备受关注。本文将深入探讨百度爬虫的工作原理,介绍其基本流程以及关键技术,帮助读者更好地理解搜索引擎背后的技术核心。 百度爬虫是百度搜索引擎的重要基石,它们被广泛用于收集互联网上的网…

桶装水订水小程序开发搭建;

水厂订水送水小程序是一款便捷的水产品订购与配送应用,基于小程序平台,用户可以轻松浏览、选购各类水产品,如矿泉水、纯净水、桶装水等,并享受送货上门服务。下面我们详细介绍它的主要功能。 一、丰富的商品展示 订水送水小程序汇…

多表查询内连接、外连接、子查询、笛卡尔积

1.1 多表查询:从多张表中进行查询 仅仅使用select * from tb_emp,tb_dept查询语句会显示如下结果(笛卡尔积:两个表的所有的组合情况)其中很大部分数据是冗余的。 1.2内连接:相当于查询A,B表交集部分的数据&#xff08…