浅谈Java abstract关键字不能和哪些关键字共存

 更新时间:2023年10月07日 08:27:18   作者:即使再小的船也能远航  
本文主要介绍了Java abstract关键字不能和哪些关键字共存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

特点

  • abstract可以修饰类,也可以修饰方法;
  • abstract修饰的类可以被继承和实现,但是这个类本身不能被实例化;
  • 抽象方法必须在抽象类中,抽象类中可以有非抽象的方法;抽象类中可以没有抽象方法,这样做的作用是这个类不可以被实例化;
  • 抽象类的子类在继承抽象类后,必须把父类中的抽象方法重写,否则子类也会自动变为抽象类;
  • 抽象方法用于被子类继承后重写。即是父类的抽象方法是空的,必须由子类继承之后在子类中由子类实现,这可以达到不同子类可以根据自己的特性来定义自己从父类继承过来的抽象方法;
  • abstract修饰的类中的普通方法可以通过该抽象类的子类直接调用。

private ——冲突——abstract 的方法必须被子类重写,而 private 不能被继承

final——冲突——final 修饰的方法,变量都不能修改,而abstract 修饰的方法必须被重写

static——不能共从——无意义,static 是静态的,abstract 方法中无方法体,无法调用

示例代码:

AnimalParent.java

package com.面向对象.Demo27;
public abstract class AnimalParent {
    /**
     * 1. 我们的abstract关键字 不能够和 private
     * ∵ 如果抽象方法 改为 private 该方法是无法 被继承 无法被重写
     * 2. final 加在类上,意味着类是不能被继承 加在方法上 该方法是无法被重写
     * 3. static 该方法是静态方法,可以直接通过"类名.方法" 访问 方法体
     *      而抽象方法是没有方法体 具体实现 交给 父类
     */
//    private abstract void eat();       //abstract
//    public final abstract void eat();  //final
//    public static abstract void eat(); //static
    public abstract void eat();
}

到此这篇关于Java abstract关键字不能和哪些关键字共存的文章就介绍到这了,更多相关Java abstract关键字共存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA8妙用Optional解决判断Null为空的问题方法

    JAVA8妙用Optional解决判断Null为空的问题方法

    本文主要介绍了JAVA8妙用Optional解决判断Null为空的问题方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Java实现统计字符串出现的次数

    Java实现统计字符串出现的次数

    这篇文章主要为大家详细介绍了Java实现统计字符串出现的次数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Java并发编程之JUC并发核心AQS同步队列原理剖析

    Java并发编程之JUC并发核心AQS同步队列原理剖析

    AbstractQueuedSynchronizer 简称 AQS,可能我们几乎不会直接去使用它,但它却是 JUC 的核心基础组件,支撑着 java 锁和同步器的实现,大神 Doug Lea 在设计 JUC 包时希望能够抽象一个基础且通用的组件以支撑上层模块的实现,AQS 应运而生
    2021-09-09
  • JDK1.8中ArrayList是如何扩容的

    JDK1.8中ArrayList是如何扩容的

    本文基于此出发讲解ArrayList的扩容机制,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java 图解Spring启动时的后置处理器工作流程是怎样的

    Java 图解Spring启动时的后置处理器工作流程是怎样的

    spring的后置处理器有两类,bean后置处理器,bf(BeanFactory)后置处理器。bean后置处理器作用于bean的生命周期,bf的后置处理器作用于bean工厂的生命周期
    2021-10-10
  • 基于StringBuilder类中的重要方法(介绍)

    基于StringBuilder类中的重要方法(介绍)

    下面小编就为大家带来一篇基于StringBuilder类中的重要方法(介绍)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题

    浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题

    本篇文章主要介绍了浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题,具有一定的参考价值,有需要的可以了解一下
    2017-08-08
  • SpringBoot bean查询加载顺序流程详解

    SpringBoot bean查询加载顺序流程详解

    当你在项目启动时需要提前做一个业务的初始化工作时,或者你正在开发某个中间件需要完成自动装配时。你会声明自己的Configuration类,但是可能你面对的是好几个有互相依赖的Bean
    2023-03-03
  • Java中通过继承Thread类创建线程的步骤

    Java中通过继承Thread类创建线程的步骤

    本文介绍了如何通过继承Thread类创建线程,包括Thread类的定义、创建线程的步骤、优缺点、使用场景和注意事项,通过示例代码展示了多线程下载文件的实现,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • 一文深入分析java.lang.ClassNotFoundException异常

    一文深入分析java.lang.ClassNotFoundException异常

    这篇文章主要给大家介绍了关于java.lang.ClassNotFoundException异常的相关资料,java.lang.ClassNotFoundException是Java编程时经常会遇到的一个异常,它表示JVM在尝试加载某个类时未能找到该类,需要的朋友可以参考下
    2023-10-10

最新评论