精华内容
下载资源
问答
  • 接口中有一个抽象类,请问继承这接口,需要实现个抽象类吗?
  • 接口存在个实现类的时候必须指定其中一个来注入 //@Autowired //@Qualifier("queryServiceOne") @Resource(name = "queryServiceOne") private QueryService queryServiceOne; @...

    当接口存在两个实现类的时候必须指定其中一个来注入

     //@Autowired
        //@Qualifier("queryServiceOne")
        @Resource(name = "queryServiceOne")
        private QueryService queryServiceOne;
    
        @Autowired
        @Qualifier("queryServiceTwo")
        private QueryService queryServiceTwo;

    可以使用以下方式指定初始化方法和销毁方法(方法名任意): 

     

    @PostConstruct 
    
    public void init() { 
    
    } 
    
    @PreDestroy 
    
    public void destory() { 
    
    } 

     

    展开全文
  • 接口、抽象类和实现

    千次阅读 2019-04-13 10:49:25
    1. 接口是最抽象层,不需要进行任何实现抽象层可以实现部分接口方法,也可以自定义方法;实现类必须实现所有方法。 2. 接口能被类(抽象类和具体类)实现,区别在于抽象实现接口,可以实现该接口的方法,也...

    接口、抽象类和实现类

    1. 接口是最抽象的一层,不需要进行任何实现;抽象层可以实现部分接口方法,也可以自定义方法;实现类必须实现所有方法。
    2. 接口能被类(抽象类和具体类)实现,区别在于抽象类实现接口,可以实现该接口的方法,也可以不实现该接口的方法;具体类必须实现接口的所有方法
    3. 接口可以被接口继承,但不允许被类继承
    4. 类之间可以相互继承,而且只能单继承
    5. abstract是抽象的意思,在java中,规定只能修饰类或者方法,所以不能修饰属性。被abstract修饰的内容都是暂未被实现的,比如类、方法。属性之所以不能被abstract修饰,是因为属性不存在"尚未被实现"的状态。比如你可能会联想到int age; 或是String name; 但可惜的是,在申明变量时,int会默认给age赋予初始值0,String会默认给name赋予初始值""。因此属性达不到"尚未被实现的状态",从而不能被abstract修饰。
    6. 抽象类和普通类在于:抽象类不能进行实例化,一方面抽象方法类似于接口的方法;另一方面,非抽象方法又和普通类方法相同,所以它兼备接口和普通类两种特型。
    7. 由于抽象类不能实例化,因此一般是作为父类,由子类进行扩充和实例化,因此,在抽象类的所有protected级别以上的方法或变量,均可以在子类中调用。

    1. 新建2个接口Context和Invocation
      Context
    package com.whc.abs;
    
    /**
     * 接口是最抽象的一层,只定义需要实现的接口函数及功能
     *
     * @author Administrator
     * @date 2019/4/11
     */
    public interface Context {
    
        // 接口中定义的成员变量默认为static
        String name = "admin";
        int age = 18;
        
        Object getName();
        Object getAge();
        void set();
    }
    
    

    另一个接口Invocation

    package com.whc.abs;
    
    /**
     * @author Administrator
     * @date 2019/4/11
     */
    public interface Invocation {
        Object getSrc();
        Object getTar();
        Object getCreateTime();
        Object getCreator();
    }
    
    

    新建一个抽象类AbstractContext

    package com.whc.abs;
    
    import java.util.Date;
    
    /**
     * 抽象类实现接口,可以有抽象方法也可以具体实现
     *
     * @author Administrator
     * @date 2019/4/11
     */
    public abstract class AbstractContext implements Context, Invocation {
    
       /**
         * 覆盖接口类的属性name
         */
        public String name = "admin1";
    
        /**
         * 抽象类可以写新定义的方法
         *
         * @return
         */
        protected String getAccount(){
            return "100";
        }
    
        /**
         * 可以在抽象类实现接口的方法
         *
         * @return
         */
        @Override
        public Object getName(){
            return "admin";
        }
    
        /**
         * 抽象类中可以定义类似接口函数,但必须加上abstract字段
         *
         * @return
         */
        abstract Object getEmail();
    
        /**
         * 抽象类实现接口的方法
         *
         * @return
         */
        @Override
        public Object getCreateTime() {
            return new Date();
        }
    
        /**
         * 抽象类实现接口的方法
         *
         * @return
         */
        @Override
        public Object getCreator() {
            return "administrator";
        }
    }
    
    

    抽象类实现类AbstractContextImpl

    package com.whc.abs;
    
    /**
     * @author Administrator
     * @date 2019/4/11
     */
    public class AbstractContextImpl extends AbstractContext {
    
        /**
         * 可以在实现类中覆盖抽象类已有的方法
         *
         * @return
         */
        @Override
        public Object getName() {
            return "guest";
        }
    
        /**
         * 接口中的方法需要实现
         *
         * @return
         */
        @Override
        public Object getAge() {
            return "25";
        }
    
        /**
         * 接口中的方法需要实现
         */
        @Override
        public void set() {
    
        }
    
        /**
         * 接口中的方法需要实现
         *
         * @return
         */
        @Override
        Object getEmail() {
            return null;
        }
    
        /**
         * 接口中的方法需要实现
         *
         * @return
         */
        @Override
        public Object getSrc() {
            return null;
        }
    
        /**
         * 接口中的方法需要实现
         *
         * @return
         */
        @Override
        public Object getTar() {
            return null;
        }
    
        public static void main(String[] args) {
            AbstractContext context = new AbstractContextImpl();
            System.out.println(context.name);//访问的是AbstractContext的name成员,它覆盖了接口类的静态成员name
            System.out.println(context.age);//访问的是接口定义静态变量age
            System.out.println(context.getAccount());//访问的是抽象类自定义实现的方法
            System.out.println(context.getName());//访问的是本实现类的方法,因为实现类对抽象类的方法进行了覆盖
            System.out.println(context.getAge());//访问的是本实现类的方法,实现了Context接口的方法
        }
    
    }
    
    

    输出结果:

    admin1
    18
    100
    guest
    25
    

    github地址:

    https://github.com/wuhc2006/springboot-practice/tree/master/springboot-thread/src/main/java/com/whc/abs

    展开全文
  • 抽象实现一个接口为什么可以不用都实现接口中的方法 [问题点数:60分,结帖人ZPH2254]   不显示删除回复 显示所有回复  显示星级回复 显示得分回复  只显示楼主 收藏 关注 ...

    抽象类实现一个接口为什么可以不用都实现接口中的方法 [问题点数:60分,结帖人ZPH2254]

     收藏
    回复次数:9
    展开全文
  • 实验抽象数据类型的实现

    千次阅读 2018-07-02 21:11:31
    实验一:抽象数据类型的实现一、实验目的:了解抽象数据类型的表示和实现方法会用C语言中已存在的数据类型来说明新的结构。能用已实现的操作来组合新的操作。熟悉C语言的程序设计二、实验内容输入圆的半径,输出圆的...


    一、实验目的:

    了解抽象数据类型的表示和实现方法

    会用C语言中已存在的数据类型来说明新的结构。

    能用已实现的操作来组合新的操作。

    熟悉C语言的程序设计

    二、实验内容

    输入圆的半径,输出圆的面积和周长。

    设计一个圆的抽象数据类型,并定义求圆的面积和周长的两个操作,输入数据是圆的半径r,圆的面积S=πr2,圆的周长L=2πr。

    三、实验步骤

    1、启动VC++6.0

    2、

     

     3、输入程序

    (1)adt.h

    typedef struct circle{

    float r;

    float area;

    float peri;

    }*Circle;

    float area(Circle c);

    float peri(Circle c);

    (2)adt.cpp

    #include <stdio.h>

    #include "adt.h"

    float area(Circle c){

    c->area =3.14*c->r *c->r ;

    return c->area;

    }

    float peri(Circle c){

    c->peri=2*3.14*c->r;

    return c->peri;

    }

    (3)adtmain.cpp

    #include<stdio.h>

    #include "adt.h"

    void main(){

    struct circle a;

    printf("请输入半径:\n");

    scanf("%f",&a.r );

    printf("the area=%f\n",area(&a));

    printf("the peri=%f\n",peri(&a));

    }

    4、运行程序、查错。

    展开全文
  • 一个实现接口和继承抽象类对于抽象方法的实现原则是相同的: (1)如果这类是普通类,那么必须实现接口/抽象类的所有抽象方法; (2)如果这类是个抽象类,那么不必实现接口/抽象类的抽象方法,...
  • Java回顾:用一个Demo来说明继承抽象类和实现接口的简单框架模型
  • 无意间都到篇《走心的安卓工程师跳槽经验分享》,发现自己工作几年了,技术方面虽然了飞跃的进步,可是不知道自己的技术到了什么地步,每方面我都涉及到了,但都不深,这大概是初级工程师的诟病吧!...
  • 程序员具备了抽象思维

    万次阅读 2021-03-22 14:32:46
    硕大而抽象,且非常美丽。 作者:张建飞 若想捉大鱼,就得潜入深渊。深渊里的鱼更有力,也更纯净。硕大而抽象,且非常美丽。——大卫·林奇 前言 抽象思维是我们工程师最重要的思维能力。因为软件技术 ...
  • Java 抽象类 接口 继承 实现

    千次阅读 2016-07-23 17:21:14
    接口和抽象类的概念不一样。接口是对动作的抽象抽象类是对根源的抽象抽象类表示的是,这对象是什么。接口表示的是,这对象能做什么。...所以,在高级语言上,一个类只能继承一个类(抽象类,jav
  • 【c#】抽象类的简单实现

    千次阅读 2019-01-22 23:16:14
    篇博客讲到了 C# 中的抽象类与抽象方法,对这两概念不清楚的可以点击下方链接。 https://blog.csdn.net/qq_42351033/article/details/86584647 通过上篇博客我们会发现,使用 abstract 关键字表示类或成员是...
  • java:抽象的两种实现方式(抽象类和接口)及其比较

    千次阅读 多人点赞 2018-02-23 20:57:38
    这两者太多相似的地方,又太多不同的地方。下面我们就起来学习一下Java中的接口和抽象类。 .抽象类  在了解抽象类之前,先来了解一下抽象方法。抽象方法是种特殊的方法:它只有声明,而没有具体的实现。...
  • 所以我们 Java 不用多重继承,用多重实现,but,如果实现了两接口中,相同名字的抽象方法,那不还是避免不了所谓的“致命方块”吗?Friend 接口:public interface Friend { public abstract void play() ; ...
  • 如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在! 1、抽象类定义 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对系列看上去不同,但是本质上相同的具体...
  • 接口 接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。
  • 抽象类必须要有抽象方法吗?

    千次阅读 2019-07-22 14:36:51
    1.如果一个类使用了abstract关键字修饰,那么这类就是一个抽象类。 2.抽象类可以没有抽象方法 3.一个类如果包含抽象方法,那么这类必须是抽象类,否则编译就会报错。 4.最关键的一点就是如果一个类是抽象类,...
  • 抽象数据类型三元组Triplet的表示和实现
  • 引言 今天回看之前总结的抽象工厂模式的实现《Java常用设计模式————抽象工厂模式》,聚焦于抽象工厂模式的缺点,试着改进了一下。...因此,当有新的类型的产品加入系统,就必须添加一个对应的工厂...
  • 说一下Java中抽象类和接口存在的意义与价值

    千次阅读 多人点赞 2018-10-15 16:29:41
    定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是方法的,方法包括方法名和方法体,这是常识对不对,那么什么是抽象类呢?如果一个类...
  • 知识点4:接口与抽象何区别

    万次阅读 2017-05-01 17:13:19
    抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法(默认 public abstract)2.抽象类中的成员变量可以是多种类型,而接口中的成员变量必须用public static final(常量)修饰3.一个类只能继承一个抽象类...
  • 抽象类”到底抽不抽象?实例对比看便知!

    千次阅读 多人点赞 2020-06-14 22:06:07
    目录 什么是抽象类? 如何定义抽象类? 什么是抽象方法? ...如何定义抽象方法?...抽象类和抽象方法的实现 ...其实在进行开发,我们可以假定抽象类是种对内容的约束,打比方来说,平行四边形类应该具有的特征和.
  • 这两者太多相似的地方,又太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:  .抽象类  二.接口
  • 1.3抽象数据类型的表示与实现

    千次阅读 多人点赞 2015-12-06 15:00:54
    记得大二的时候学习严蔚敏大神的《数据结构》,满本书的抽象结构,抽象抽象那个,直接整蒙了。最困难的就是概念本来就晦涩难懂,而且书里面也没有可以直接运行的代码,真头疼。好在最近发现高一凡编写的《数据...
  • 1、抽象类  含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象。在书写抽象要注意: ...如果其中不含有抽象方法,那么完全可以将它用一个具体的实现类来替换。   2、抽象类中定义抽象方法
  • 纯虚函数 、抽象类 、多重继承 、二义性问题 、菱形继承 、虚基类 、从内存布局看虚继承的底层实现原理
  • Java抽象类 详解

    万次阅读 多人点赞 2016-10-05 00:06:35
    抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。...
  • 目录 概念 抽象类与普通类 二、抽象类与接口 三、小结 ...抽象类和具体类是相对的...抽象的概念是由具体概念依其“共性”而产生的,把具体概念的诸多个性排出,集中描述其共性,就会产生一个抽象性的概念。...
  • 设计模式(6)[JS版]-JavaScript如何实现抽象工厂模式?

    千次阅读 多人点赞 2020-07-24 21:28:39
    目录 1 学习目标 2 什么是抽象工厂模式? 3 抽象工厂模式作用 4工厂模式参与者 ...5 代码实现 ...1 知道什么是抽象工厂模式?...2 掌握抽象工厂模式的作用以及什么时候需要使用抽象工厂模式 ...一个抽象工.
  • 接口存在个实现的动态调用

    千次阅读 2017-08-23 17:57:16
    接口存在个实现的动态调用版权声明:本文为博主原创文章,未经博主允许不得转载。在之前做过的项目这块的需求,也参考过网上大神们的设计方式,主要整理出一下两种方式供大家参考 使用Spring特性实现接口多...
  • C++:实现LinkedList 学习抽象数据类型

    千次阅读 2016-09-04 17:36:18
    C++:实现LinkedList 学习抽象数据类型标签(空格分隔): c++ 数据结构 作者:陈小默C实现LinkedList 学习抽象数据类型 定义需求 作为类 作为List 作为栈stack 作为队列 ...我们说起其中的区别

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 605,470
精华内容 242,188
关键字:

当存在一个抽象有不同实现时