精华内容
下载资源
问答
  • 抽象类应该怎么使用
    千次阅读
    2020-10-18 22:02:42

    微信搜索《Java鱼仔》,每天一个知识点不错过

    (一)每天一个知识点

    抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?

    (二)结论

    抽象类不必须有抽象方法,但如果一个类包含抽象方法,则该类必须是抽象类。

    抽象类不能用final修饰,因为抽象类必须被继承,而被final修饰的类不能被继承。

    (三)再多学一点

    虽然几乎每个程序员都知道抽象类,但是实际开发中抽象类对大多数人来说就只是一个概念,用到的机会很少。理由也很简单,抽象类是抽取共性需求而来的,即使没有抽象类,对业务的实现也没有影响。但是如果合理应用抽象类,能增强代码的重用性,更加有效地解决复杂需求。

    继续回到题目:抽象类必须要有抽象方法吗?

    当然不必须有,甚至于一个抽象类可以没有任何一个抽象方法,这个类除了不能被实例化之外,和普通的类几乎没有任何区别。

    但是如果一个抽象类中有抽象方法,那么他的子类必须要实现抽象方法。

    第二个问题:抽象类可以使用final修饰吗?

    当然不可以,通过理解抽象类的作用我们就发现了,抽象类必须要被继承,如果用final修饰抽象类,这个抽象类就无法被继承,自然就无法使用了。

    更多相关内容
  • 抽象类使用@Autowired

    千次阅读 2021-03-16 18:28:05
    抽象类使用@Autowired1.简介在本快速教程中,我们将说明如何在抽象类使用 @Autowired 自动装配注解。我们将 @Autowired 应用于 abstract 抽象类,并关注此时要考虑的重点。2.Setter 方式注入我们可以在设置...

    在抽象类中使用@Autowired

    1.简介

    在本快速教程中,我们将说明如何在抽象类中使用 @Autowired 自动装配注解。

    我们将 @Autowired 应用于 abstract 抽象类,并关注此时要考虑的重点。

    2.Setter 方式注入

    我们可以在设置方法上使用_@Autowired_:public abstract class BallService {

    private LogRepository logRepository;

    @Autowired

    public final void setLogRepository(LogRepository logRepository) {

    this.logRepository = logRepository;

    }

    }

    当我们使用_@Autowired_上setter方法,我们应该用final 关键字,这样子类便不能覆盖setter方法。否则,注解将无法正常运行。

    3.构造函数注入

    我们不能在抽象类的构造函数上使用_@Autowired_。

    Spring 不会在抽象类的构造函数上解析 @Autowired 注解。子类应为 super 构造函数提供必要的参数。

    相反,我们应该在子类的构造函数上使用_@Autowired_:public abstract class BallService {

    private RuleRepository ruleRepository;

    public BallService(RuleRepository ruleRepository) {

    this.ruleRepository = ruleRepository;

    }

    }@Component

    public class BasketballService extends BallService {

    @Autowired

    public BasketballService(RuleRepository ruleRepository) {

    super(ruleRepository);

    }

    }

    4.备忘单

    让我们总结一些要记住的规则。

    首先,抽象类不会进行组件扫描,因为没有具体的子类就无法实例化。

    其次,在抽象类中可以进行setter注入,但是如果不对setter方法使用_final_关键字,因而存在一定误用的风险。如果子类覆盖 setter 方法,则应用程序可能不能正常运行。

    第三,由于 Spring 在抽象类中不支持构造函数注入,因此通常应该让具体的子类提供构造函数参数。这意味着我们需要在具体子类中依赖构造函数注入。

    最后,将构造函数注入用于必需的依赖项,并将setter注入用于可选的依赖项是一个很好的经验法则。但是,正如我们可以从抽象类的一些细微差别中看到的那样,通常在这里构造函数注入更为有利。

    因此,实际上我们可以说具体的子类控制着它的抽象父类如何获得其依赖项。 Spring 在装配子类时, 会对其依赖进行注入。

    5.结论

    在本文中,我们练习了在抽象类中使用_@Autowired_,并解释了一些关键点。

    可以在Github项目中找到本教程的源代码 。

    b739ec46bb5c46d9c0aa4ce35ba1ea56.png

    关于找一找教程网

    本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

    本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

    [在抽象类中使用@Autowired]http://www.zyiz.net/tech/detail-151190.html

    展开全文
  • 抽象类和抽象方法的使用

    千次阅读 2022-02-08 15:50:04
    有时候将一个类设计的非常抽象,以至于他没有具体的实例,这样的类叫做抽象类。 abstract关键字的使用 1、abstract可以用来修饰结构、类、方法 2、一旦父类抽象了,就不可以再实例化造对象 ps:父类还是应该提供...

    有时候将一个类设计的非常抽象,以至于他没有具体的实例,这样的类叫做抽象类。

    abstract关键字的使用

    1、abstract可以用来修饰结构、类、方法

    2、一旦父类抽象了,就不可以再实例化造对象

    ps:父类还是应该提供构造器,便于子类实例化时调用super()

    3、开发中,都会提供抽象类的子类,让子类实例化,完成相关操作

    4、abstract修饰方法,没有方法体

    这个例子不是没有方法体,不是抽象方法

    public void eat(){
    }

    抽象方法的定义:只有方法的声明,没有方法体

    public abstract void eat();

    如果一个类中存在抽象方法,那么这个类中一定不能造对象,所以这个类一定是个抽象类

    ------->包含抽象方法的类一定是个抽象类

    反之,抽象类里面的方法不一定是抽象方法

    若子类重写了父类中所有抽象方法后,此子类方可实例化

    若子类没有重写了父类中所有抽象方法,此子类也必须声明为抽象类

    抽象类一定有子类!(不然他又没法造对象,就失去了这个类的意义)

    抽象类的子类,如果这个父类抽象类中有抽象方法,那么一定要重写该抽象方法或者子类也定义为抽象类

    abstract 不可以修饰私有方法、静态方法(静态方法在子类中不算重写,这样会导致没有办法重写这样的静态方法如果又声明为抽象的,则需要在子类中重写,矛盾)、final的方法、final的类

    展开全文
  • 抽象类概述分析事物时, 发现了共性的内容,就出现向上抽取,但是如果父类 的方法功能与子类不同,那么这时就不抽取方法主体,这样抽取出来的方法 就是抽象方法 什么是抽象类有抽象方法的类 抽象类和普通的父类有什么区别...

    b21eb33baf91d5eef0d7b4c736a826c6.png

    抽象类概述

    分析事物时, 发现了共性的内容,就出现向上抽取,但是如果父类 的方法功能与子类不同,那么这时就不抽取方法主体,这样抽取出来的方法 就是抽象方法

    什么是抽象类

    有抽象方法的类

    抽象类和普通的父类有什么区别?

    有抽象方法

    抽象方法又是什么?

    使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体

    总结: 
        1. 将像的部分和相似的部分抽取到一个父类当中(共性内容向上抽取)
                ***抽象类,就是一个特殊父类***
        2. 抽象类和普通父类的区别在于, 抽象类可以定义抽象方法
        3. 当我们将共性的行为(方法) 抽取到父类之中后, 发现该行为在父类中描述不清了,
        但这个行为还是子类(强制重写)必须要做的行为,就可以定义为抽象方法
    
                举例:  
                        动物类 :
                            eat(); //将共性的eat方法抽取到父类中后,发现该行为描述不清了
                        猫类 :
                            eat() { 吃<●)))><< };
                        狗类 :
                            eat() {吃肉};

    抽象类和抽象方法如何定义?

    抽象方法:
    去掉方法体的大括号,然后分号结束,并在返回值类型前面加入关键字[abstract]
    public abstract void eat () ;
    限制:抽象方法,必须存活在抽象类或者是接口当中
    抽象类如何定义: 在class 前面加入[abstract]
    public abstract class Student  {}

    抽象类的子类必须要重写抽象类的抽象方法(或者把自己也变成抽象类)

    抽象类的特点

    A . 抽象类和抽象方法必须使用abstract关键字修饰
    B . 抽象类中不一定有抽象方法,但是有抽象方法的一定是抽象类或接口
    C . 抽象类不能实例化 (实例 = 对象) [也就是不能创建对象],如果非要实例化,可以通过多态的形式创建,也就是 父类引用指向子类对象
    实例化:
    Animal a = new Dog();
    //多态调用方法,编译看左边(检查父类中有没有eat方法),运行看右边(执行的是子类的eat方法)
    a.eat();
    D . 抽象类的子类 1.重写父类(抽象类)中所有的抽象方法[推荐方案] 2.要么将自己也变成一个抽象类

    抽象类的成员特点

    总结:
        1. 成员变量: 
                ● 可以是一般变量
                ● 也可以是常量
    
        2. 成员方法:
                ● 可以是一般方法
                ● 也可以是抽象方法
    
        3. 构造方法:
                有,目的是为了方便子类进行初始化的
    
        结论: 抽象类中除了可以定义抽象方法以外,其余的定义和普通的类是一样的

    注意事项

    关于抽象类的使用,


    1. 抽象类不能创建对象,如果创建了,编译无法通过而报错,只能创建其非抽象子类的对象


    2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的


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


    4.抽象类的子类,必须重写抽象父类中所有抽象方法,否则,编译无法通过而报错, 除非该子类也是抽象类

    展开全文
  • 抽象类使用

    千次阅读 2018-10-18 11:17:33
    在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的...
  • 抽象类和接口的区别以及抽象类和接口的使用场景

    万次阅读 多人点赞 2019-05-30 18:15:44
    一、抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。 1.抽象方法...
  • Java中的抽象类和接口

    千次阅读 多人点赞 2022-04-08 15:17:42
    各位铁汁们大家好呀!今天让我们继续学习java,看看java中的抽象类和接口到底是什么? 里面也会讲到多态呀,一起来看看吧
  • 抽象类使用 final 修饰吗?

    万次阅读 2019-04-18 14:32:29
    抽象类使用 final 修饰吗? 不能,抽象类是被用于继承的,final修饰代表不可修改、不可继承的。 【Java面试题与答案】整理推荐 基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与...
  • 抽象类和接口的区别及使用场景

    千次阅读 2020-01-02 15:49:00
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。 1.抽象方法:使用...
  • 抽象类详解

    千次阅读 2021-08-03 14:56:19
    java抽象类详解java抽象类详解 abstract抽象类以及抽象方法格式定义抽象类以及抽象方法用例抽象类以及抽象方法使用场景抽象类使用注意事项 java抽象类详解 abstract 众所周知类中室友方法的,大家先看一看抽象方法...
  • java抽象类 继承

    千次阅读 2021-03-08 06:02:32
    关于java抽象类 继承的搜索结果回答抽象类和接口的区别:默认的方法实现抽象类可以有默认的方法实现完全是抽象的。接口根本不存在方法的实现。抽象类中可以有已经实现了的方法,也可以有被...实现 抽象类使用ex...
  • 抽象类和接口

    千次阅读 2020-11-24 19:38:35
    抽象类 ​ 概述 ​ 父类当中的方法,被他的子类们重写,子类的各自实现又不一样。那么父类的方法声明和方法体,只有声明还有意义,而方法体内容则没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法。...
  • 在我们的工作学习中都起着很多决定性的作用,在学习Java的时候我们的老师或者课本或者一些权威或许会告诉我们抽象类是什么什么,接口是什么什么,但是你有没有想过你自己在日常的编程当中使用过多少次的抽象类,...
  • JAVA——抽象类

    千次阅读 2021-03-09 00:47:50
    抽象方法和抽象类使用 abstract 修饰;2.有一个抽象方法的类必须是抽象类;3.抽象类中一定有抽象方法,反之不成立;4.抽象类不能够实例化 ,即不能创建对象;5.抽象类的成员一般使用 public 或者 protected修饰;6....
  • Java抽象方法和抽象类

    千次阅读 2022-04-22 15:41:00
    1、抽象方法 如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去...因为这个抽象方法本身是无法执行的,所以Person无法被实例化。并且编译器会报错无法编译Person,因为它包含抽...
  • 接口和抽象类使用区别?

    万次阅读 2019-06-18 14:48:00
    抽象类是事物的本质 太监案例: /** * Human 抽象类 */ abstract class Human{ //吃饭 abstract fun eat() //睡觉 abstract fun sleep() } /** * IMan 接口 */ interface IMan { //生育 ...
  • 一、抽象类和普通类区别抽象类和普通类的区别我们做了以下7点简单的总结,相信看了的朋友应该都会很清楚的了解了,一起来看看。下面是具体的区别之处。1、和普通类比较起来,抽象类它不可以被实例化,这个区别还是...
  • JAVA 抽象类

    千次阅读 2021-03-01 08:03:17
    一、抽象类的概念C extends B, B extends A 在继承过程中,形成了一个继承金字塔。位于金字塔底部的类越来越具体(强大),位于金字塔顶部的类越来越抽象(简单)。例如:人类继承于(属于)动物类,鱼类继承于(属于)动物...
  • Java抽象类 详解

    万次阅读 多人点赞 2016-10-05 00:06:35
    一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。...
  • Java 抽象类和接口

    千次阅读 热门讨论 2021-11-14 16:09:56
    文章目录一、抽象类1.抽象类1.1抽象类的定义1.2抽象方法的定义方式1.3抽象类的定义方式2.抽象类和实例类的区别3.抽象类示例4.抽象类的特征二、接口1.接口1.1接口的定义1.1定义一个接口1.2 接口的使用1.3接口的注意...
  • java抽象类详解

    千次阅读 2021-02-25 18:11:57
    前言在没讲抽象类之前 我们先来看看 final关键字final 修饰符 可以...为什么要使用抽象类?当我们在写继承时 一般实现时用不到父类 不需要实例化对象 这个时候我们就把这个父类定义为抽象类也就是说抽象类本身没有...
  • java抽象类经典实例分享

    千次阅读 2021-02-12 11:07:34
    在这之前有给大家详细的介绍过java抽象类,相信很多人应该都比较了解了,那么下面就要继续来给大家分享一个java抽象类的实例。题目:不同几何图形的面积计算公式是不一样的,可是,它们具有的特性是一样的,都具有...
  • TS 抽象类 abstract 的使用

    千次阅读 2021-04-28 21:12:36
    抽象类 特点 抽象类并不能进行实例化 他规范了继承他的子类必须拥有抽象属性与抽象方法 他提供了抽象属性与抽象方法来让继承他的子类重写,来实现不同的处理方式 他的保护属性与方法可以被每个子类继承来实现继承...
  • python中的抽象类

    千次阅读 2021-06-09 08:57:07
    python中的抽象类 1.首先知道python中的抽象类其实就是一种代码规范,和前面两篇文章python中的单继承和python中的多继承说的都是一个道理归根到底都是为了代码规范,同样也是从Java中继承的思想,抽象类一般都是单...
  • 接口和抽象类的区别是什么? •接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。 •接口中的实例变量默认是 final 类型的,而抽象类中则...
  • 你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧!一、java抽象类的作用java抽象类的作用具体的可以分成以下的三点:1、抽象类通常都是用来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,439,683
精华内容 575,873
热门标签
关键字:

抽象类应该怎么使用

友情链接: SAS学习资料.zip