Java中抽象

编程入门 行业动态 更新时间:2024-10-24 02:28:29

Java中<a href=https://www.elefans.com/category/jswz/34/1765602.html style=抽象"/>

Java中抽象

一、概述

当父类知道子类应该包含什么样的方法,但无法确定子类如何实现这些方法;在分析事物时,会发现事物的共性,将共性抽取出,实现的时候,就会有这样的情况:方法功能声明相同,但方法功能主体不同,这时,将方法声明抽取出,那么,此方法就是一个抽象方法。

1、抽象的定义格式

  • 抽象方法的定义格式:public abstract 返回值类型 方法名(参数);
  • 抽象类的定义格式:abstract class 类名{}

2、抽象的特点

  • 抽象类和抽象方法都需要被 abstract 修饰,抽象方法一定要定义在抽象类中
  • 抽象不能直接创建对象,因为调用抽象方法没有意义
  • 只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象,否则该子类还是一个抽象类
  • 之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单

3、抽象类的注意事项

  • 抽象类一定是个父类,因为是不断抽取而来的
  • 抽象类中可以不定义抽象方法,其存在的意义就是不让该类创建对象,方法可以直接让子类去使用
  • 抽象关键字 abstract 不可以和以下关键字共存:
    private:私有的方法子类是无法继承到的,也不存在覆盖,如果 abstract 和 private 一起使用修饰方法, abstract 既要子类去实现这个方法,而 private 修饰子类根本无法得到父类这个方法,互相矛盾
    final:final 修饰的类不能被继承,而抽象类一定是父类
    static:static 修饰的表示静态的,不能被修改的,但可以直接被类所调用,而abstract修饰的是抽象的,即没有方法实体,也不能直接被调用

二、代码实例

  • 先创建Develop.java父类,创建Develop抽象类,并创建抽象方法
package MyAbstract;/*** 定义开发人员类,所有开发人员都具有工作的共性,* 对工作共性进行抽取,然后形成一个Develop类* 定义方法:工作* 抽象类不能实例化对象,即不能new,抽象方法没有主体,不能运行* 抽象类的使用:可以定义类继承抽象类,将抽象方法进行重写,创建子类的对象*/
public abstract class Develop {//定义工作方法,但具体怎么工作,并不明白,所以干脆不说,即抽象方法//必须使用abstract关键字修饰//抽象的方法必须存在抽象类中,类也必须使用abstract关键字修饰public abstract void work();
}
  • 再创建Php.java子类,重写父类的抽象方法
package MyAbstract;/*** 定义PHP开发人员* 继承抽象类Develop,重写抽象的方法*/
public class Php extends Develop {//重写父类的抽象方法,去掉abstract关键字,加上方法主体public void work(){System.out.println("正在开发网页!");}
}
  • 在Main.java中调用
package MyAbstract;public class Main {public static void main(String[] args){Php ph = new Php();ph.work();}
}

实例解析

  • 将共性“研发人员”抽取出来形成一个Develop类并定义方法:工作
  • 抽象类不能实例化,即不能 new 抽象方法没有主体
  • 可以定义类来继承抽象类,将抽象类进行重写,然后创建子类的对象
  • 重写父类的抽象方法时,去掉abstract关键字,加上方法主体

更多推荐

Java中抽象

本文发布于:2023-06-13 09:35:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/679005.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:抽象   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!