zoukankan      html  css  js  c++  java
  • Java抽象类

      抽象类介绍
      父类中的方法被其子类覆盖,并且它们的实现也不同。然后是父类的方法声明和方法主体,只有声明仍然有意义,但方法主体没有意义(因为子类对象将调用被其自身覆盖的方法)。换句话说,父类可能知道子类应该具有哪个函数,但是尚不清楚该函数如何实现父类(由子类本身确定)。父类仅需要提供方法签名,而无需方法主体。具体实现留给子类来实现。我们将没有方法主体的方法称为抽象方法。Java语法规定包含抽象方法的类是抽象类。
      抽象方法:没有方法主体的方法。
      抽象类:包含抽象方法的类。
      抽象格式
      抽象表示抽象,用于修改方法的方法和类,修改的方法是抽象的方法,修改的类是抽象的类。
      抽象方法
      使用abstract关键字修改方法,该方法将成为抽象方法。抽象方法仅包含方法名称,而没有方法主体。
      定义格式:
      修饰符抽象返回值类型的方法名称(参数列表);
      代码示例:
      公共抽象无效run();
      抽象类
      如果一个类包含抽象方法,则该类必须是抽象的。注意:抽象类不一定具有抽象方法,但是具有抽象方法的类必须定义为抽象类。
      定义格式:
      抽象类类名{}
      代码示例:
      公共抽象类动物{公共抽象无效run();}
      抽象类的使用
      要求:继承抽象类的子类必须覆盖父类的所有抽象方法。否则,子类也必须声明为抽象类。
      代码示例:
      //父类,抽象类抽象类Employee{privateStringid;私有字符串名称;私人双薪;publicEmployee(){}publicEmployee(Stringid,字符串名称,双薪){this.id=id;这个。名称=名称this.salary=薪水;}//抽象方法//必须将抽象方法放在抽象类中abstractpublicvoidwork();}//定义一个子类以继承抽象类类Manager扩展Employee{publicManager(){}公共管理器(字符串id,字符串名称,双倍薪水){super(id,名称,薪水);}//2.重写父类的抽象方法@Overridepublicvoidwork(){System.out.println(“管理其他人”);}}///定义一个继承了Cook类扩展的抽象类的子类Employee{publicCook(){}publicCook(字符串id,字符串名称,双倍薪水){super(id,名称,薪水);}@Overridepublicvoidwork(){System.out.println(“Chef烹调更多的盐...”);}}//测试类publicclassDemo10{publicstaticvoidmain(String[]args){//创建一个摘要类,抽象类无法创建对象////假设抽象类允许我们创建对象,则内部的抽象方法没有方法主体,因此无法执行。因此,让我们不要创建对象//Employeee=newEmployee();//e.work();//3.创建子类Managerm=newManager();m.work();Cookc=newCook(“ap002”,“Cook”,1);c.work();}}
      此时重写的方法是父类的子类的抽象方法的完成。我们还将这种方法称为重写操作,也称为实现方法。
      抽象类的特征
      总结抽象类的特点可以说是有得有失
      是:抽象类具有使用抽象方法的能力。
      丢失:抽象类失去了创建对象的能力。
      还可以使用其他成员(构造函数,实例方法,静态方法等)抽象类。
      抽象类的注意事项
      关于抽象类的使用,以下是语法细节。尽管条目很多,但如果您了解抽象的性质,则无需记住它们。
      抽象类无法创建对象。如果创建它们,编译将失败并且将报告错误。只能创建不是抽象子类的对象。
      理解:假设创建了一个抽象类的对象并调用了一个抽象方法,并且该抽象方法没有特定的方法主体并且没有意义。
      在抽象类中,可以有一个构造函数,子类使用该构造函数在创建对象时初始化父类成员。
      理解:子类的构造函数中有一个默认的super(),您需要访问超类的构造函数。
      抽象类不一定包含抽象方法,但是具有抽象方法的类必须是抽象类。
      理解:一个不包含抽象方法的抽象类,目的是不允许调用者创建这种类型的对象,通常用于某些特殊的类结构设计。
      抽象类的子类必须重写抽象父类中的所有抽象方法,否则子类也必须定义为抽象类,并且编译失败并报告错误。
      理解:假设您不重写所有抽象方法,则该类可能包含抽象方法。创建对象后,调用抽象方法毫无意义。
      抽象类的含义要由子类继承,抽象类体现了模板的思想。
      了解:抽象类中已实现的是模板中确定的成员。抽象类不确定如何实现,并将其定义为抽象方法,该方法移交给特定的子类以进行实现。
      抽象类的含义
      抽象类的含义将由子类继承,否则抽象类将毫无意义。抽象类体现了模板的思想。模板是通用的东西。抽象类已经是特定的实现(抽象类可以具有成员变量和实现Method),并且无法在模板中确定的事物被定义为抽象方法,并让使用该模板的类(继承该类的类)抽象类)重写抽象方法以满足要求。这是一个典型的模板想法。

  • 相关阅读:
    软件包的作用
    Sqlserver2008 表分区教程
    C#通用类型转换 Convert.ChangeType
    缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别
    用户信息 Froms验证票证
    .NET4.0 __doPostBack未定义
    TFS2012 安装 配置笔记
    MVC学习笔记一
    新博客..第一天..
    ORACLE多表查询优化
  • 原文地址:https://www.cnblogs.com/hite/p/13037699.html
Copyright © 2011-2022 走看看