首页 > 其他分享 >抽象类和方法

抽象类和方法

时间:2024-04-03 23:45:50浏览次数:24  
标签:name void System long 抽象类 方法 public

前言

父类方法存在不确定性可考虑抽象方法

抽象方法是未实现的方法(即没有方法体)

抽象类由abstract修饰。通常抽象类会被继承由子类实现抽象方法

基本介绍

  1. 用abstract关键字来修饰一个类时,这个类就叫抽象类访问【修饰符 abstract 类名】
  2. 抽象方法不能有方法体;抽象类不能实例化(new)
  3. 抽象类可以没有抽象方法;但是有抽象方法的类必须是抽象类
  4. abstract只能修饰方法和类,不能修饰其他的。
  5. 抽象类的本质还是类可有任意成员
  6. 如果一个类继承了抽象类,他必须实现抽象类的所有抽象方法,除非它也声明为抽象类
  7. 抽象方法不能使用private、final和static修饰,因为这些关键字和重写相悖。
查看代码

public class Abstract_ {
    public static void main(String[] args) {
        System.out.println("hello,world");
    }
}
abstract class A{
    public abstract void hi();
}
class B extends A {
    public void hi(){
        //实现继承的抽象类中的所有抽象方法,具有方法体即是实现了(抽象)方法
    }
}

功能实例:

Employee.Java
 abstract public class Employee {
    private String name;
    private int id;
    private double deposit;
    public abstract void work();//抽象方法
    public Employee(String name, int id, double deposit) {
        this.name = name;
        this.id = id;
        this.deposit = deposit;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public double getDeposit() {
        return deposit;
    }

    public void setDeposit(double deposit) {
        this.deposit = deposit;
    }
}
Manager.java
 public class Manager extends Employee {
    private double bonus;
    @Override
    public void work() {
        System.out.println("经理"+getName()+"工作中。。。。");
    }
    public Manager(String name, int id, double deposit) {
        super(name, id, deposit);
    }

    public Manager(String name, int id, double deposit, double bonus) {
        super(name, id, deposit);
        this.bonus = bonus;
    }
}
Common.java
 public class Common extends Employee{

    public Common(String name, int id, double deposit) {
        super(name, id, deposit);
    }
    @Override
    public void work() {
        System.out.println("普通员工工作中。。。");
    }
}

抽象类应用模板设计模式

Abstract_.java
 public class Abstract_ {
    public static void main(String[] args) {
        One one = new One();
        one.calTime();
        Two two = new Two();
        two.calTime();
    }
}
Two.java
 public class Two extends Template{
    // 继承抽象函数后多行注释代码省略
   /* public void calTime() {
        long start = System.currentTimeMillis();
        sum();
        long end = System.currentTimeMillis();
        System.out.println("Two执行时间:" + (end - start));
    }*/

    public void sum() {
        // 得到开始的时间
//        long start=System.currentTimeMillis();
        long num = 0;
        for (long i = 1; i < 9910000; i++) {
            num *= i;
        }
//        long end=System.currentTimeMillis();
//        System.out.println("Two执行时间:"+(end-start));
    }
}
One.java
 public class One extends Template{
    // 继承抽象函数后多行注释代码省略
    /*public void calTime(){
        long start=System.currentTimeMillis();
        sum();
        long end=System.currentTimeMillis();
        System.out.println("One执行时间:"+(end-start));
    }*/
    public void sum(){
        // 得到开始的时间
//        long start=System.currentTimeMillis();
        long num=0;
        for (long i = 1; i < 8810000; i++) {
            num+=i;
        }
//        long end=System.currentTimeMillis();
//        System.out.println("One执行时间:"+(end-start));
    }
}
Template.java
abstract public class Template {
    public abstract void sum();

    public void calTime() {
        long start = System.currentTimeMillis();
        sum();// 动态绑定机制
        long end = System.currentTimeMillis();
        System.out.println("任务执行时间:" + (end - start));
    }
}

根据以上应用例子可以看到抽象类提供一个模板,继承抽象类后重写抽象方法等价于插入自定义的方法内容,以达到模板的效果。

 

标签:name,void,System,long,抽象类,方法,public
From: https://www.cnblogs.com/vayenge/p/18079553

相关文章

  • 团队遇到了问题及解决方法
    团队遇到缺乏有效的沟通和协作问题。1、建立规则,仪式,流程,模式:首先,我们可以制定一个通讯规则,明确工作相关信息的传达途径和频率,例如每周开会进行项目进度和团队沟通。另外,可以建立一个任务分工和协作流程,明确每个成员的职责和工作流程,避免出现重复劳动或者沟通不畅的情况。2、给......
  • 元组、布尔、集合内置方法以及数据类型内置方法总结
    昨日内容回顾【一】列表类型内置方法(一)类型强制转换字符串可以转换成列表字符串中的每一个元素字典转换为列表以后是字典的键元组转换为列表集合转换为列表集合的去重性和无序性--->一旦转换成功这个列表就定死(二)按照索引取值正向:从0开始反向:从-1开始可......
  • 校园二手交易系统所遇到的问题以及解决方法
    1.问题:校园二手平台信息真实性无法保证2.改进计划:一、步骤一:建立规则,仪式,流程,模式1.规则建立:明确平台使用规则,规定发布信息的标准,如必须上传实物图片、填写详细商品描述等。2.实名认证:所有用户必须进行实名认证,确保信息发布者的身份真实可靠。3.审核机制:建立信息审核团队,对发......
  • 校园二手交易平台系统问题以及解决方法
    1.针对校园二手平台交易过程存在的安全隐患问题2.改进计划:步骤一:建立规则、仪式、流程、模式交易流程优化:明确并优化交易流程,确保每一步都有明确的规定和指导,降低因流程不清导致的风险。建立中介服务:平台可设立中介服务,协助双方进行交易,包括资金托管、商品验货等环节,增加交易......
  • AI绘画:让STABLE DIFFUISON ComfyUI 在 Blender 里面飞(把AI绘画整合到blender的方法)
    前言   了解过Blender的朋友一定都知道B站UP主“只剩一瓶辣椒酱”,他在blender界就是和秋叶大佬一样的存在,属于祖师级别的人物。最近,他和幻之境开发小组联合开发的一款基于STABLEDIFFUISONComfyUI核心的BlenderAI插件,将他们整合到了一起,名字叫做——无限圣杯(资源......
  • 【进来一起刷Java题】Java中使用空对象引用调用静态方法的奇特现象 附题目+解析 | ((Te
    目录一、题目二、解析三、答案:一、题目有关下述Java代码描述正确的选项是____。答案直接点目录里的跳转。publicclassTestClass{  privatestaticvoidtestMethod(){    System.out.println("testMethod");  }  publicstaticvoidmain(Str......
  • 如何隐藏我的IP?5种隐藏IP地址的方法
    对于管理多个账户的跨境电商或者外贸企业来说,隐藏IP地址已成为保护隐私安全的重要一步。IP地址是每台连接到互联网的设备的唯一标识符,它可以被用于追踪用户的在线活动和位置,但IP地址也可能暴露我们的位置和身份信息,本文将为大家介绍一些隐藏IP的有效方法,帮助你在互联网上隐藏身......
  • 关于多信号量打拍的方法讨论
    在实际工作中,由于时序的原因必须对相关信号打拍(用D触发器实现)以满足设计要求。通常思路写法,如下示例代码:always@(posedgeclkornegedgerst_n)begin:FF_PROif(!rst_n)beginpkt_vld_ff1<=1'b0;pkt_vld_ff2<=1'b0;pkt_sop_ff1<=......
  • 【教程】宝塔default.db占用空间几十g解决方法|宝塔占用磁盘空间特别大解决方法|宝塔
    目录一、前言二、排查问题三、解决方法一、前言用过宝塔创建网站,大家应该都非常熟悉,但是用随着用的时间越来越多,宝塔所占用的空间也越来越多,不停的加大数据盘都没有用,我原先买了30G够用了,随着时间一长,发现数据盘又满了,不得不又买了20个G扩容,可是过了一段时间又满了。......
  • Base64 编码的字符串转换为 Blob 对象方法
    Base64编码的字符串转换为Blob对象方法 constblob=function(data:string,mime:string){data=data.split(',')[1];data=window.atob(data);letia=newUint8Array(data.length);for(vari=0;i<data.length;i++){ia[i]=data.ch......