精华内容
下载资源
问答
  • C++的抽象类有什么用?

    千次阅读 2020-08-07 11:15:25
    那么抽象类有什么用呢?比如在父类中定义了吃水果蔬菜,那么具体是吃什么呢?猴子可能喜欢吃香蕉,兔子可能喜欢吃萝卜。这都一个具体点,就是吃东西,但是具体吃什么父类是不能把这种单独的放到“共有的”这个里面...

    在C++中,如果一个类中含有纯虚析构,那么这个类就是抽象类。

    定义一个纯虚析构

    virtual 修饰的函数为虚析构,虚析构=0则为纯虚析构

    那么抽象类有什么用呢?比如在父类中定义了吃水果蔬菜,那么具体是吃什么呢?猴子可能喜欢吃香蕉,兔子可能喜欢吃萝卜。这都有一个具体点,就是吃东西,但是具体吃什么父类是不能把这种单独的放到“共有的”这个里面,具体吃什么由子类决定。这时候父类设置一个抽象类。表明这个功能没有实现,交给子类自己实现。

    展开全文
  • 抽象类作用什么

    千次阅读 2019-10-11 20:00:48
    这一组任意个可能的具体实现表现为所有可能的子类,模块可以操作一个抽象类,由于模块依赖于一个固定的抽象类,那么他是不允许修改的。同时通过这个抽象类进行派生,拓展此模块的行为功能。 ...

    1、用于隐藏
    对类型进行隐藏,我们可以构造出一个固定的一组行为的抽象描述,一个行为可以有任意个可能的具体实现方式。这个抽象的描述就是抽象类。
    2、用于拓展对象的行为功能
    这一组任意个可能的具体实现表现为所有可能的子类,模块可以操作一个抽象类,由于模块依赖于一个固定的抽象类,那么他是不允许修改的。同时通过这个抽象类进行派生,拓展此模块的行为功能。

    展开全文
  • 很多人搞不清楚接口和抽象类的区别!下面我把我的理解与大家共享!
  • 抽象类自身不能创建对象,但是它的子类可以创建对象。 抽象它的子键字是abstract 在父类中定义的抽象方法,在子类中必须实现(即方法重写),否则子类还是抽象类 抽象方法没有方法体。 抽象方法必须定义在抽象类...

     

    抽象类自身不能创建对象,但是它的子类可以创建对象。

    抽象它的子键字是abstract

    在父类中定义的抽象方法,在子类中必须实现(即方法重写),否则子类还是抽象类

    抽象方法没有方法体。

    抽象方法必须定义在抽象类中。

     package com.jredu.oopch03;
    /**
     * 抽象类
     * @author Administrator
     *
     */
    public abstract class Shape2 {
     
        protected int bottom;//底
        protected int height;//高
        
        public Shape2(int bottom, int height) {
            super();
            this.bottom = bottom;
            this.height = height;
        }
        public abstract void perimeter();//抽象方法
        public abstract void area();
        
    }
    

    在子类中实现方法:

     @Override
        public void perimeter() {
            // TODO Auto-generated method stub
            int perimeter = (bottom*height)*2;
            System.out.println("平行四边形的周长是:"+perimeter);
        }
     
        @Override
        public void area() {
            // TODO Auto-generated method stub
            int area = bottom*height;
            System.out.println("平行四边形的面积是:"+area);
        }
     
     
    原文:https://blog.csdn.net/xuehyunyu/article/details/77074056 
    
    
    展开全文
  • 抽象类的概念和作用

    万次阅读 多人点赞 2018-07-08 12:07:46
    一、抽象类的概念和作用1.抽象的定义  抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念)2.抽象类  Java中可以定义没有方法体的...

    一、抽象类的概念和作用
    1.抽象的定义
        抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念)
    2.抽象类
        Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。
    3.抽象方法的特点
        (1)只有方法头没有方法体的方法称之为抽象方法。(即只有方法的声明,没有方法的实现)
        (2)抽象方法用abstract关键字来修饰。
        (3)抽象方法代表一种不确定的操作或行为。(由子类去具体实现)
        (4)抽象方法不能被调用。
    4.抽象类的特点
        (1)定义中含有抽象方法的类叫做抽象类。
        (2)抽象类用abstract关键字来修饰。
        (3)抽象类代表一种抽象的对象类型。
        (4)抽象类不能实例化。
        (5)抽象类中可以有具体方法,可以没有抽象方法。(也就是说一个类中只要有一个方法是抽象方法那么这个类一定是抽象类,反过来,一个抽象类中可以没有抽象方法,可以带有具体
        实现的方法)
        (6)一旦一个类中有抽象方法,那么这个类必须也要用abstract来修饰,代表这个类是抽象类,它是不能被实例化的。
    如:
        ① A是一个抽象类
        public abstract class A{
            public void methodA(){
                System.out.println("test");
            }
        }

        ② public abstract void methodB();
        用abstract来修饰的方法称之为抽象方法,抽象方法的特点就是只有方法的声明,没有方法的实现。这里不能这样写:public abstract void methodB(){},因为写了大括号就代表有
    方法的实现,只不过这是一个空实现,即没有大括号的才称为方法的声明。

    public abstract class Employee {
    private int number;
    private String name;
    private double salary;

    public Employee(int number, String name, double salary) {
    this.number = number;
    this.name = name;
    this.salary = salary;
    }

    // 抽象方法的声明(抽象类中不推荐放具体实现的方法)
    public abstract void work();
    }
    // 一旦一个类继承了抽象类,那么这个类要么实现抽象类中的抽象方法,要么继续抽象下去。
    public class JavaTeacher extends Employee {


    public JavaTeacher(int number, String name, double salary) {
    super(number, name, salary);
    }

    @Override
    public void work() {
    System.out.println("上java课");
    }

    }
    public class Leader extends Employee {
    private double allowance;

    public Leader(int number, String name, double salary, double allowance) {
    super(number, name, salary);
    this.allowance = allowance;
    }

    @Override
    public void work() {
    System.out.println("培训新员工");
    System.out.println("设计课程体系");
    }

    }
    public class EmployeeDemo {
    public static void main(String[] args) {
    JavaTeacher javaTeacher = new JavaTeacher(1001, "张三", 10000);
    // 父类的引用变量可以引用其子类对象(这里抽象类Employee也是一个父类,通过父类的引用变量引用值实现多态),所以也可以这么写:
    // Employee javaTeacher = new JavaTeacher(1001, "张三", 10000);下同。
    javaTeacher.work();

    Leader leader = new Leader(101, "李四", 20000, 50000);
    leader.work();

    // 抽象类不能实例化
    // Employee employee = new Employee(1,"小王",2000,50000);
    }

    }

    备注:抽象类为什么不能实例化?

    首先抽象类不能实例化是一个java的语法规范。

    抽象类中是可以包含抽象方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须实现父类的所有抽象方法。之所以在java中存在这样一个语法规范,就是为了定义这种类型结构来解决生活中这样的一些实际问题。

    你看过周星驰的电影没,就是那个去水果店,揪住老板说要一斤水果!老板问他你要什么水果,他说他就要水果!这个水果就是抽象类,你如果能在水果店买到一斤叫水果的水果,那就能实例化一个抽象类。要跟现实生活联系起来。

    5.模板方法模式

    (1)定义:一个模板方法用一些抽象的操作定义一个算法,而子类将重定义这些操作以提供具体行为

    (2)意图:定义了在一个操作中的一个算法框架,把一些步骤推迟到子类去实现。模板方法模式让子类不需要改变算法结构而重新定义特定的算法步骤。

    public class TemplateDemo {
        public static void main(String[] args) {
            DBTeacher dbTeacher = new DBTeacher();
            dbTeacher.work();
            System.out.println("===========我是一道闪电=========");
            CTeacher cTeacher = new CTeacher();
            cTeacher.work();
        }
    }

    abstract class Teacher{
        // 老师工作的方法是一个流程,也可以认为是一个模板方法(即模板方法中的每一个步骤是固定的,老师授课按这个模板方法执行就可以了)
        public void prepared() {
            System.out.println("准备好白板笔");
            System.out.println("打开投影仪");
        }
        
        public void end() {
            System.out.println("关闭投影仪");
            System.out.println("锁教室门");
        }
        
        /**
         * 这是一个抽象方法由其子类去实现
         */
        public abstract void teaching();
        
        public void work() {
            // 授课前准备
            prepared();
            // 进行授课
            teaching();
            // 授课结束
            end();
        }
    }

    class DBTeacher extends Teacher{
        // 实现父类抽象的方法
        @Override
        public void teaching() {
            System.out.println("打开Oracle软件");
            System.out.println("书写sql指令");
            System.out.println("优化sql指令");
        }
    }

    class CTeacher extends Teacher {
        // 实现父类的抽象方法
        @Override
        public void teaching() {
            System.out.println("打开VM软件");
            System.out.println("书写C指令");
            System.out.println("调试C程序");
        }
    }

    展开全文
  • 抽象类

    千次阅读 多人点赞 2020-01-12 21:57:45
    抽象类中不一定抽象方法,但是抽象方法的类必须定义为抽象类 C.抽象类不能实例化 因为他不是具体的。 抽象类具有构造方法,但是不能实例化。构造方法的作用什么?子类对父类数据进行初始化 D:抽象的的子类 a:...
  • 抽象类: 被abstract修饰的类 * 抽象方法: 被abstract修饰的方法 * 可以没有方法体 * 必须在抽象类中 * * 注意: * 1.抽象类不能被实例化|不能创建对象 * 2.抽象方法要存在与抽象类中,抽象方法必须被重写 * 3.抽象类...
  • 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 抽象...
  • 抽象类概念及其作用

    千次阅读 多人点赞 2019-06-03 10:41:26
    一、什么抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类除了不能...
  • 一、Java中接口和抽象类的区别?

    千次阅读 2019-10-24 15:41:23
    Java中接口和抽象类的区别
  • 上一节课我们学习了Java中的继承语法,以及如何继承中的方法重写和super()关键字,今天我们将学习一下如何阻止继承以及抽象类。 课程内容 阻止继承:final类和方法 有些时候我们希望阻止某个类被继承,不允许扩展的...
  • 抽象类和接口有什么区别

    万次阅读 多人点赞 2018-08-25 20:36:35
    抽象类和接口各不可替代的作用。 从容器类的类关系图中可以看到,接口主要是用来抽象类型的共性,例如说,容器的可迭代特性。抽象类主要是给具体实现类提供重用的代码,例如说, List  的一些默认方法。 ...
  • java抽象类和接口有什么意义

    千次阅读 2021-02-04 16:53:06
    什么接口和抽象类不能实例化,为什么接口可以多个实现而抽象类只能单继承,特别是java8之后,抽象类和接口里面都可以写代码后,就更加分不清了,今天重新整理一下。 什么抽象类(abstract class) 使用abstract...
  • 回想前面我们的猫狗案例,...而是一个抽象的事物。只有真正的猫,狗才是具体的动物。同理,我们也可以推想,不同的动物吃的东西应该是不一样的,所以,我们不应该在动物中给出具体体现,而是给出一个声明即可。 ...
  • 抽象类及抽象方法作用

    千次阅读 2018-10-12 23:45:55
    举例:父类定义了一个排序方法,而具体的实现由子类来实现,可以是冒泡排序,也可以是希尔排序等等,父类的排序方法没有必要写出具体实现,只要声明一下就行 ...抽象类及抽象方法是一种约束,一种规范...
  • Java抽象类作用和使用

    万次阅读 多人点赞 2017-02-12 21:04:16
    转载自Java抽象类的使用 /* 当多个类中出现相同功能,但是功能主体不同, 这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。 抽象:看不懂。 抽象类的特点: 1,抽象方法一定在抽象类中。 2,...
  • 什么抽象类什么是抽象方法?

    千次阅读 2019-03-06 21:09:42
    抽象类抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类,抽象类有点类似于“模板”的作用,目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再...
  • Java中抽象类作用

    千次阅读 2019-06-18 17:59:40
    Java抽象类,可以理解为一种约定工具,在代码中抽象类在某种情况适合用来写出大体框架,具体实现流程由抽象类事先定义完毕,具体实现过程可以定义抽象方法,而抽象方法交由子类去具体实现。 举个例子:定义一个...
  • 抽象类必须子类去继承,一个子类只能继承一个继承抽象类; 抽象方法必须是public和protected(因为如果是private,则不能被子类继承,子类就不能实现此方法); 如果子类继承了此抽象类,则子类必须要重写抽象类中...
  • 什么使用抽象类有什么好处?

    千次阅读 多人点赞 2019-04-27 18:11:05
    其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是...
  • 抽象类什么不能创建对象?

    千次阅读 2020-07-10 17:24:06
    抽象类什么抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟...
  • C# abstract抽象类的定义,作用(使用场景)

    万次阅读 多人点赞 2018-09-03 11:34:27
    基本是为了功能开发而开发,我相信80%的程序员都一样,基本都是拿网上的开源项目改改改后实现功能就行, 很少会去深入,去思考为什么要这么来实现,所以了今天的文章,我作为程序员小白鼠把C#中的抽象类学习中的...
  • 其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是...
  • 抽象类必须要抽象方法吗?抽象类能使用 final 修饰吗?
  • java 抽象类中构造函数的作用

    千次阅读 2020-04-17 12:33:42
    毋庸置疑抽象类中可以定义构造函数,但是这时会一个疑问,既然抽象类的实例化毫无意义那为何又要定义其自己的构造函数呢? 首先,可以通过其内部的构造函数初始化其内部的变量。 其次,可以通过实现它的子类通过...
  • 抽象类作用和应用场景

    千次阅读 2018-08-13 17:58:00
    抽象类作用和应用场景: 抽象类的应用场景: 描述一类事物的时候,发现该事物确实存在着某种行为,但是目前该行为是不具体的,那么这时候我们应该抽取该方法的声明,不去实现该方法,这时候我们应该使用抽象类...
  • 总所周知抽象类和接口是Java里面比较重要的俩个对象,在我们的工作学习中都起着很多决定性的作用,在学习Java的时候我们的老师或者课本或者一些权威或许会告诉我们抽象类什么什么,接口是什么什么,但是你没有想...
  • 抽象类定义?为什么要使用抽象类?

    千次阅读 2018-07-16 20:18:15
    什么要使用抽象类有什么好处? 答案:1 现实中一些父类中的方法没必要写 各个子类中的方法会有所不同 所以没必要在父类中写 2 看被人代码时候会注意这是抽象方法 会个提示作用 3 当看到一个类是抽象的...
  • 结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 466,876
精华内容 186,750
关键字:

抽象类有什么作用