2024年9月抽象类的意义(java中输入流抽象类有什么意义)

 更新时间:2024-09-21 08:51:44

  ⑴抽象类的意义(java中输入流抽象类有什么意义

  ⑵java中输入流抽象类有什么意义

  ⑶抽象类的作用如果你看JDK的源码,就会发现,大部分情况下,你用到的方法,他的父类都是一个抽象类,而不是一个直接的接口。原因主要有两个,接口确实是用来定义规范的,同一个接口下,可能有大量不同的实现,举个例子,List这个接口booleanadd(Ee);booleanremove(Objecto);booleanaddAll(Collection《?extendsE》c);......但是你去看ArrayList,第一个继承的是AbstractList(抽象类,然后你去看LinkedList,第一个继承是AbstractSequentialList(抽象类,而AbstractSequentialList也是继承自AbstractList,你肯定知道ArrayList和LinkedList的区别咯。为什么这么做呢,因为有很多方法是可以复用的,比如publicintindexOf(Objecto);publicintlastIndexOf(Objecto);......如果你纯粹用接口的话,你需要写很多重复的代码,一旦修改,你就麻烦了。抽象类的目的在于,你可以更细致化的表明哪些是不同的,哪些是相同的。所以这就是接口和抽象类的简单区别。如果还不理解,你可以看看collection容器类的源码,就会发现了。(抽象类可以默认实现某些方法,就不需要对一些方法重复实现相同的功能)二:抽象类与一般类的区别抽象类与一般类的区别在于抽象方法。它的理念是对某个操作下一个定义,但交给子类去实现。你可能会说,一般类也可以定义一个空方法,然后交给子类实现啊,但这么做因为没有在语法上强迫子类一定要实现这个方法,所以如果子类忘了去实现的话,软件出错的几率会很高。三:抽象类与接口的区别当然,有时候Java接口不支持缺省方法,但有了缺省方法的接口,仍然不能代替抽象类,因为没有成员。接口之所以不能有成员,是因为它只是对象行为的抽象。当你需要定义一个类型,既包含行为抽象,又包含成员来供子类使用时,显然只有抽象类可以满足了

  ⑷java中没有抽象方法的抽象类有什么意义

  ⑸抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。

  ⑹在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的。

  ⑺通过从这个抽象体派生,也可扩展此模块的行为功能。为了能够实现面向对象设计的一个最核心的原则OCP(Open-ClosedPrinciple),抽象类是其中的关键所在。

  ⑻抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

  ⑼抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

  ⑽通常在编程语句中用abstract修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

  ⑾抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

  ⑿抽象类到底有什么用途啊

  ⒀抽象类的一个功能--不能被实例化。也就是不能被new.举个生活中的例子宠物类下面有狗狗类,猫猫类来继承它。一般的情况我们有这两种方法宠物类a=new狗狗类();翻译就是。我有一只宠物,这只宠物是狗狗,它叫a狗狗类a=new狗狗类();我有一只狗狗,它叫a.这个不区别。关键的是,楼主来看下面的代码宠物类a=new宠物类();虽然我们经常说,我有一只宠物。(但是请注意,实际上没有一种叫宠物有东西。宠物是个泛泛的概念,我们现实生活中有狗和猫所以抽象类不能被new的功能。是为了符合事实意义。同时也是类的一种高度概括。我们说类是对象的抽象。抽象类又是各种各校类的抽象

  ⒁C#中的抽象类的作用是什么时候用抽象类

  ⒂抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。在设计一些大的模块单元时,可以用到抽象类。

  ⒃java中抽象类和接口存在的意义是什么

  ⒄抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。

  ⒅java中抽象类的存在的意义是什么

  ⒆java中抽象类更利于代码的维护和重用。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。所以,Java中抽象类对于代码的维护和重用有很好的帮助,也是Java面向对象的一个重要体现。

  ⒇python下的抽象类的用途和意义

  ⒈抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象方法的简单的方法是:classSheep(object:defget_size(self):raiseNotImplementedError任何从Sheep继承下来的子类必须实现get_size方法。否则就会产生一个错误。但这种实现方法有个缺点。定义的子类只有调用那个方法时才会抛错。这里有个简单方法可以在类被实例化后触发它。使用python提供的abc模块。importablassSheep(object):__metaclass__=(self):return这里实例化Sheep类或任意从其继承的子类(未实现get_size时候都会抛出异常。因此,通过定义抽象类,可以定义子类的共同method(强制其实现。

  ⒉没有抽象方法的抽象类有什么意义

  ⒊抽象类的意义在于思想上,而非内容上,这是面向对象的精华。如果我们觉得一大类“东西”,可以提取出一个“共同概念”,那么这个“共同概念”就可以是一个基类。如果这个“共同概念”本身没有现实存在,那么这个基类就可以是一个“抽象类”,至于抽象类有没有方法,取决于这个“共同概念”要不要做什么事情。如果它只是表达一些属性,其他的什么也不做,那仍然不影响它在概念上是一个合情合理的抽象类。

  ⒋不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

  ⒌抽象类里的抽象方法必须全部被子类所实现,子类不能全部实现父类抽象方法,那么该子类还只能是抽象类。一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

  ⒍抽象类可以有默认的方法实现;接口,Java规定可以为接口提供默认实现的方法并且不用强。

  ⒎制子类来重写子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要重写抽象类中的抽象方法;接口子类使用关键字implements来实现接口,它需要重写接口中没有默认。

  ⒏抽象类可以有构造器,接口不能有构造器。

  ⒐与正常Java类的区别

  ⒑除了不能实例化抽象类之外,和普通Java类没有任何区别;接口是完全不同的类型外。

  ⒒抽象方法可有public.protected和default、abstract修饰符。不能用privatestatic.synchronize、native修饰。

  ⒓接口属性默认修饰符是publicstaticfinal(必须赋初值),方法默认修饰符是publicabstract.Java开始出现静态方法,多加static关键字。

  ⒔并且可以运行它;接口没有main方法,因此不能运行它。

  ⒕抽象类可以继承一个类和实现多个接口;接口只可以继承一个或多个接口。

  ⒖在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。

  ⒗这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。

  ⒘由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的;同时,通过从这个抽象体派生,也可扩展此模块的行为功能。

  ⒙为了能够实现面向对象设计的一个最核心的原则OCP(Open-ClosedPrinciple),抽象类是其中的关键所在。

您可能感兴趣的文章:

相关文章