精华内容
下载资源
问答
  • 抽象类意义
    千次阅读
    2019-05-07 23:30:36

    抽象类:

    一个类中如果包含抽象方法,这个类应该用abstract关键字声明为抽象类。

    意义:

    1. 为子类提供一个公共的类型;
    2. 封装子类中重复内容(成员变量和方法);
    3. 定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。
    更多相关内容
  • 浅谈Java的抽象类及其意义

    千次阅读 2020-05-13 22:04:27
    文章目录什么是抽象类对于抽象类的使⽤原则抽象类的相关规定抽象类意义 什么是抽象类 抽象类只是在普通类的基础上扩充了⼀些抽象⽅法⽽已,所谓的抽象⽅法指的是只声明⽽未实现的⽅法(即没有⽅法体)。所有抽象...

    什么是抽象类

    • 抽象类只是在普通类的基础上扩充了⼀些抽象⽅法⽽已,所谓的抽象⽅法指的是只声明⽽未实现的⽅法(即没有⽅法体)。所有抽象⽅法要求使⽤abstract关键字来定义,并且抽象⽅法所在的类也⼀定要使⽤abstract关键字来定义,表示抽象类。
    • 定义一个抽象类:
      在这里插入图片描述
    • 抽象类中包含有抽象⽅法,也可以有普通方法,⽽抽象⽅法不包含⽅法体,即没有具体实现。因此抽象类不能直接产⽣实例化对象。

    对于抽象类的使⽤原则

    • 所有的抽象类必须有⼦类
    • 抽象类的⼦类必须覆写抽象类的所有抽象⽅法(⼦类不是抽象类),⽅法覆写⼀定要考虑权限问
      题,权限尽量都⽤public
    • 抽象类的对象可以通过对象多态性利⽤⼦类为其实例化
    • private与abstract不能同时使⽤。

    抽象类的相关规定

    • 抽象类只是⽐普通类多了⼀些抽象⽅法⽽已。
      (1)因此在抽象类中也允许提供构造⽅法,并且⼦类也照样遵循对象实例化流程。实例化⼦类时⼀定先调⽤⽗类构造⽅法。
      (2)如果⽗类没有⽆参构造,那么⼦类构造必须使⽤super明确指出使⽤⽗类哪个构造⽅法。
    • 抽象类中允许不定义任何的抽象⽅法,但是此时抽象类依然⽆法直接创建实例化对象。
    • 抽象类⼀定不能使⽤final声明,因为使⽤final声明的类不允许有⼦类;⽽抽象类必须有⼦类;相应的,抽象⽅法也不能使⽤private定义,因为抽象⽅法必须要能被覆写。
    • 抽象类也分为内部抽象类和外部抽象类。内部抽象类中也可以使⽤static定义来描述外部抽象类。

    抽象类的意义

    1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。

    2.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。

    所以,Java中抽象类对于代码的维护和重用有很好的帮助,也是Java面向对象的一个重要体现。

    展开全文
  • 纯虚函数是一种特殊的虚函数,它的一般格式如下:  class <... class point//抽象类 { public: point(int i=0, int j=0) { x0=i; y0=j; } virtual void set() = 0;//纯虚函数 virtual void draw
  • 下面小编就为大家分享一篇C# 抽象类,抽象属性,抽象方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • PHP抽象类 介绍

    2020-10-28 01:12:48
    对于PHP程序员来说,最为难掌握的一点要数PHP抽象类应用这一块知识点。作为一个新手其实也还没有到要用面向对象的知识去编程,但以后进行开发,使用类进行封装或者使用接口之类,把程序进行各种模块式的开发,这当然...
  • 抽象类存在的意义是被子类继承,否则抽象类将毫无意义抽象类体现的是模板思想,模板是通用的东西抽象类中已经是具体的实现(抽象类中可以有成员变量和实现方法),而模板中不能决定的东西定义成抽象方法,让使 用...

    1 请问定义抽象类、抽象方法使用的关键字是什么?

    • abstract

    2 请问定义抽象类存在的意义?

    • 抽象类存在的意义是被子类继承,否则抽象类将毫无意义,抽象类体现的是模板思想,模板是通用的东西抽象类中已经是具体的实现(抽象类中可以有成员变量和实现方法),而模板中不能决定的东西定义成抽象方法,让使 用模板(继承抽象类的类)的类去重写抽象方法实现需求,这是典型的模板思想。

    3 请问定义抽象方法有什么意义?

    • 抽象方百法是在抽象类里的,首先,一个子类如果是继承一度个抽象类,如果该子类是非abstract类,就必须实现基类中的所有抽象方法问;而如果该子类是abstract类,答则可以实现.继承一个抽象类,抽象方法版,可以有不同的实现.这是它的优点.是相对于接权口而言的.抽象方法本身没什么用.。

    • 之所以需要继承,是因为这个方法是这些子类的一个共同属性。或者说,父类要通过这些抽象的方法,提供某种特定的服务,但是实现方式在子类中有所不同,所以在父类中写了抽象方法强制子类实现,保证能够提供这种服务。

    4 请问一个类继承了抽象类后,必须要做的事情是什么?

    • 实现抽象方法。

    5 请问抽象类是否可以继承其它抽象类?

    • 可以。

    7 模板模式的优势是,

    • 模板已经定义了通用架构,使用者只需要关心自己需要实现的功能即可。
    展开全文
  • 复制代码 代码如下://抽象类的...不能从抽象类创建对象,它的意义在于被扩展//3.抽象类通常具有抽象方法,方法中没有大括号//4.抽象方法不必实现具体的功能,由子类来完成//5.在子类实现抽象类的方法时,其子类的可见
  • java抽象类和接口有什么意义

    千次阅读 2021-02-04 16:53:06
    为什么接口和抽象类不能实例化,为什么接口可以多个实现而抽象类只能单继承,特别是java8之后,抽象类和接口里面都可以写代码后,就更加分不清了,今天重新整理一下。 什么是抽象类(abstract class) 使用abstract...

    用了java这么久,对接口和抽象类使用一直很模糊。为什么接口和抽象类不能实例化,为什么接口可以多个实现而抽象类只能单继承,特别是java8之后,抽象类和接口里面都可以写代码后,就更加分不清了,今天重新整理一下。

    什么是抽象类(abstract class)

    使用abstract修饰符修饰的类。官方点的定义就是:如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。

    实际点来说,一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但终归属于类,所以仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。

    那么可能初学者会问:既然不能实例化,那么在类里面定义成员方法,成员变量有什么用。

    抽象类在实际应用中,更多的是因为类中有抽象方法。抽象方法:只声明,不实现。具体的实现由继承它的子类来实现。实际点就是:被abstract修饰的方法,只有方法名没有方法实现,具体的实现要由子类实现。方法名后面直接跟一个分号,而不是花括号。例如:

    abstract class Animal{
        public abstract void run();
    }
    
    class Person extends Animal{
        @Override
        public void run() {
            System.out.println("Person.run");
        }
    }
    

    一个类中含有抽象方法(被abstract修饰),那么这个类必须被声明为抽象类(被abstract修饰)。

    什么是接口(interface)

    官方定义:接口在java中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而继承接口的抽象方法。

    从定义上看,接口是个集合,并不是类。类描述了属性和方法,而接口只包含方法(未实现的方法)。接口和抽象类一样不能被实例化,因为不是类。但是接口可以被实现(使用 implements 关键字)。实现某个接口的类必须在类中实现该接口的全部方法。虽然接口内的方法都是抽象的(和抽象方法很像,没有实现)但是不需要abstract关键字。

    接口中没有构造方式(因为接口不是类)

    接口中的方法必须是抽象的(不能实现)

    接口中除了static、final变量,不能有其他变量

    接口支持多继承(一个类可以实现多个接口)

    例如:

    声明两个职业 接口:

    public interface ItWorker {
        String name = "worker";
        public void coding();
    }
    public interface Teacher {
        String name = "teacher";
        public void teaching();
    }
    

    Person实现两种职业接口:

    public class Person implements ItWorker,Teacher{
        @Override
        public void coding() {
            System.out.println("I'm a"+ItWorker.name);
        }
    
    	@Override
    	public void teaching() {
    	   System.out.println("I'm a"+Teacher.name);
    	}
    
    }
    

    抽象类和接口有什么意义

    对于接口

    接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。

    对于接口的作用,在一些小的项目上,很难看出其发挥的优势。这就使一些经常的做小项目的开发人员,做时间久了就感觉不到它有什么好的,有时候写起来还麻烦,干脆不用了。其实,在一些大项目上,接口的作用是发挥地相当的明显的。

    比如:如果你开发业务逻辑代码,当你好不容易的实现了它全部的功能,突然用户需求要改,你在修改你代码的同时,调用你代码的其它人也会改,如果代码关联性强的话,会有很多人都要改动代码,这样一来二去,程序会变得相当的不稳定,而且可能还会出现更多的新Bug,所有人都可能会陷入混乱。

    但如果使用接口的话,在你使用它之前,就要想好它要实现的全部功能(接口实际上就是将功能的封装)。确定下这个接口后,如果用户需求变了,你只要重新写它的实现类,而其它人只会调用你的接口,他不管你是怎么实现的,它只需要接口提供的功能。这样,很可能只需要把你的代码修改就可以了,其他人什么都不用做。

    同时:这样做的话,使得开发人员能够分工明确,只要确定下来接口了,就可以同时进行开发,提高开发效率。另外,使用接口还有使用方便,可读性强,结构清晰
    等优点。

    对于抽象类

    一般来说我们使用普通类来实现接口,这个普通类就必须实现接口中所有的方法,这样的结果就是普通类中就需要实现多余的方法,造成代码冗余。但是如果我们使用的是抽象类来实现接口,那么就可以只实现接口中的部分方法,并且当其他类继承这个抽象类时,仍然可以实现接口中有但抽象类并未实现的方法。

    总结

    我们可以把接口看成一个工具,当我们实现一个接口时,就意味着能使用这一工具,当我们实现多个接口时,就能使用多种工具,就像上面Person可以是多种职业,所以它可以同时实现Teacher和ItWorker接口。

    而抽象类则可以看成是一个祖先,所以一个类只能继承一个祖先,如上Animal是Person的祖先,所以Person具有Animal的一切属性。

    展开全文
  • 主要介绍了java 抽象类的实例详解的相关资料,希望通过本大家能理解掌握这部分内容,需要的朋友可以参考下
  • 主要介绍了JAVA抽象类和抽象方法(abstract),结合实例形式分析了java抽象类及抽象方法相关定义、使用技巧与操作注意事项,需要的朋友可以参考下
  • 主要介绍了Java抽象类和抽象方法定义与用法,结合实例形式详细分析了Java抽象类和抽象方法相关原理、定义、使用方法及操作注意事项,需要的朋友可以参考下
  • Kotlin中的抽象类实现

    2020-08-25 09:49:47
    主要介绍了Kotlin中的抽象类实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了Java接口和抽象类原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法。 Person类(没有抽象方法的抽象类): public abstract class Person { private String name; private int age; public Person() { } ...
  • python之抽象类

    千次阅读 2021-03-05 15:30:28
    1什么是抽象类与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化2为什么要有抽象类如果说类是从一堆对象中抽取相同的内容而来的,那么...
  • Java中的抽象类和接口

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

    千次阅读 多人点赞 2019-06-03 14:54:23
    学习抽象类前先理解下面这段话: 问你个问题,你知道什么是“东西”吗?什么是“物体”吗? “麻烦你,小王。帮我把那个东西拿过来好吗” 在生活中,你肯定用过这个词--东西。 小王:“你要让我帮你拿那个...
  • 抽象类: 1、如果一个类中有一个方法是抽象方法,则这个类就是抽象类; 2、抽象类必须加上abstract关键字修饰; 抽象方法: 定义:一个方法如果没有方法体,则这个方法就是抽象方法 1、一个方法没有方法体,直接用...
  • 主要介绍了Java中接口和抽象类的区别与相同之处,本文讲解了抽象类的概念、接口的概念、接口和抽象类的区别与联系等内容,需要的朋友可以参考下
  • 抽象类:包含抽象方法的类 抽象类 1、抽象类不能进行实例化 也就是:Shape shape = new Shape(); 2、在抽象类当中,可以拥有和普通类一样的数据成员和方法 public int age; public static int count; public void ...
  • 2.不能从抽象类创建对象,它的意义在于被扩展 3.抽象类通常具有抽象方法,方法中没有大括号 PHP抽象类应用重点: 1.抽象方法不必实现具体的功能,由子类来完成 2.在子类实现抽象类的方法时,其子类的可见性必须...
  • 你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧!一、java抽象类的作用java抽象类的作用具体的可以分成以下的三点:1、抽象类通常都是用来...
  • python抽象类有什么用

    2021-02-09 11:51:25
    抽象类,就像是类和接口的混合体,具有接口的特性,在python中利用第三方abc模块,实现抽象类。...含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法,此时也没有任何意义了。在python中接口(抽象类...
  • 说一下Java中抽象类和接口存在的意义与价值

    千次阅读 多人点赞 2018-10-15 16:29:41
    首先简单的介绍一下抽象类: 定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常识对不对,...
  • 抽象类和接口

    千次阅读 2020-11-24 19:38:35
    抽象类 ​ 概述 ​ 父类当中的方法,被他的子类们重写,子类的各自实现又不一样。那么父类的方法声明和方法体,只有声明还有意义,而方法体内容则没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法。...
  • java抽象类 继承

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

    2019-01-04 17:01:02
    1.可以把同一种类型的对象共性抽取出来后封装成抽象类,子类通过继承该抽象类达到代码编写简洁,易于维护的目的。 2.通过抽象类定义一系列规范,继承该抽象类的子类必须实现相应的抽象方法,使得该子类具有相应的...
  • **抽象类可以使用implements关键字实现接口,但又不用在该抽象类里实现接口里的具体方法(不实现接口的具体方法不会报错),那设计抽象类可以使用implements来实现接口有什么意义啊?** 抽象类: public ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 292,501
精华内容 117,000
关键字:

抽象类意义