java的抽象类,java的抽象类不能定义构造函数

本文目录一览:

Java抽象类是什么概念?

JAVA的抽象类其实和她的普通类在表示实现概念的东西没多大区别,不要因她带有抽象这个形容词就觉得比她的普通类理解起来复杂.

个人的理解是

所谓的抽象类呢,就是带有抽象方法的类.

所谓的抽象方法就像是一种写代码的规范.

抽象方法没有方法体

抽象方法可以有参数列表

抽象方法用abstract修饰

抽象方法的访问修饰分别为 public、protected、default(缺省 不用写)

加深了解抽象类

/*理解JAVA抽象类

* 1.抽象类不能被实例化.

* 2.抽象类有构造器,且他的构造在他的子类被实例化时被调用的顺序和普通类调用的顺序是一样的(先父后子).

* 3.抽象类内部的方法可以不是抽象方法,也就是说抽象类内部可以有具体的方法.

* 4.抽象类的抽象方法属于一种不完整的方法,只含有声明和定义,没有方法主体.

* 5.如果抽象的某个子类是普通类(非abstract类型的类),那么该子类必须Override抽象类中所有的抽象方法.

* 6.抽象类的子类也是抽象类的话,那么该子类既可以Override父类中的方法,也可以不Override父类中的方法.

* 7.普通类中不能定义抽象方法.

* 8.static不能修饰抽象方法

* 备注:为了方便理解,所谓的普通是指如下形式定义的类

* public class X{} 或 class A XX{}

* */

java抽象类

抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法。

1、抽象类可以不包括抽象方法,它反正不会去实例化,里面的方法是不是抽象的没有本质影响。

2、但是含有抽象方法的类绝不能被实例化,否则执行这个方法的时候,怎么办?

3、如果子类是非抽象的,那么它就必须实现父类中的抽象方法;否则,它继承来的抽象方法仍然没有方法体,也是个抽象方法,此时就与“含有抽象方法的类必须是抽象类”相矛盾了。

比如说,我在纸上画一个饼(抽象类),饼有个“吃到嘴里沾一嘴芝麻”的方法。我可以在饼上画几个点假装是芝麻,这时候“沾芝麻方法”就是个抽象方法,因为它不会真的掉芝麻;我也可以在饼上蘸点儿真芝麻,这时候“沾芝麻方法”就是个有实现的方法。但是用哪个方法都可以,因为没人会去真的吃画的饼吧。

但我要真的去照着这个图烤一个饼(非抽象子类),那这个子类的“吃到嘴里沾一嘴芝麻”的方法就必须有具体的实现。否则烤出来,一吃,没芝麻啊!食客非上消协投诉不可。

java中的抽象类和具体类的差别在那里?

1、抽象类不能直接实例化,并且对抽象类使用

new

运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为

null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。

2、允许(但不要求)抽象类包含抽象成员。

3、抽象类不能被密封。

当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员。

java抽象类?

抽象类是不允许被实例化, 仅仅是限制抽象类不能创建自己的实例, 仅仅只是限定了不允许出现new A();方式创建一个 A 类的实例

并没有限制 类型 A 的引用不可以指向任何 A 的直接或间接子类的具体实例的

父类型引用指向一个子类型的实例这是允许的,这就是里氏代换原则的描述

原创文章,作者:OWKS,如若转载,请注明出处:https://www.506064.com/n/145003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
OWKSOWKS
上一篇 2024-10-26 11:54
下一篇 2024-10-26 11:54

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29

发表回复

登录后才能评论