浅谈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为空的问题方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-10-10
Java 图解Spring启动时的后置处理器工作流程是怎样的
spring的后置处理器有两类,bean后置处理器,bf(BeanFactory)后置处理器。bean后置处理器作用于bean的生命周期,bf的后置处理器作用于bean工厂的生命周期2021-10-10
浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题
本篇文章主要介绍了浅谈利用Spring的AbstractRoutingDataSource解决多数据源的问题,具有一定的参考价值,有需要的可以了解一下2017-08-08
一文深入分析java.lang.ClassNotFoundException异常
这篇文章主要给大家介绍了关于java.lang.ClassNotFoundException异常的相关资料,java.lang.ClassNotFoundException是Java编程时经常会遇到的一个异常,它表示JVM在尝试加载某个类时未能找到该类,需要的朋友可以参考下2023-10-10


最新评论