abstract可以修饰类和方法。

abstract修饰类时,该类不能手动创建对象(JVM可以创建抽象类的对象),但是可以声明抽象类型的引用。如下所示:

public class TestAbstract1{

public static void main(String[] args){

//Animal a=new Animal(); //error

Animal a=null;

a=new Dog();

}

}

abstract class Animal{

}

class Dog extends Animal{

}

abstract修饰方法时,有方法名的定义,但没有具体实现,也就是说只是定义了一个方法能够实现什么功能,但没有说具体怎样做。这样做的好处就是允许方法的定义和实现分开。抽象方法的定义如下所示:

抽象方法的好处是允许方法的定义和实现分开。

abstract class Animal{

public abstract void eat();

}

抽象类与抽象方法的关系是:有抽象方法的类一定是抽象类,抽象类却不一定有抽象方法。

抽象类是用来继承的,一个类继承了抽象类,则必须实现该抽象类中的所有的抽象方法,否则该类也是抽象类。如下所示:

abstract class Animal{

public void run(){}   //该方法不是抽象方法

public abstract void sleep();

public abstract void eat();

}

class Dog extends Animal{

public void sleep(){

System.out.println("Dog sleep.");

}

public void eat(){

System.out.println("Dog eat.");

}

}

abstract class Cat extends Animal{

public void eat(){

System.out.println("Cat eat.");

}

}

可以声明父类类型子类对象,利用多态调用抽象方法,如下所示:

public class TestAbstract1{

public static void main(String[] args){

Animal a=null;

a=new Dog();

a.sleep();

a.eat();

}

}

抽象类也有抽象方法,有父类的,遵循单继承规律:

class E{}

abstract class Animal extends E{

public Animal(){

super();

}

}

abstract修饰的类和方法应该是开放的,可以被继承的,所以它不能和修饰符final、private以及static连用。

java中abstract是什么_JAVA中的abstract的介绍相关推荐

  1. java中抽象类继承抽象类_Java中的抽象类用示例解释

    java中抽象类继承抽象类 Abstract classes are classes declared with abstract. They can be subclassed or extende ...

  2. java中抽象类的定义_Java中抽象类的定义和使用

    Java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础.指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类是 ...

  3. java中extends怎么用_Java 中extends與implements使用方法

    初學Java語言, 代碼中的extends和implements讓我感到很迷惑,現在終於弄明白它們之間的區別和用法了. //定義一個Runner接口 public inerface Runner { ...

  4. java抽象类有什么用_java中抽象类的作用是什么?抽象类作用的例子

    你知道java当中抽象类的作用是什么吗?有什么作用?下面和小编一起来详细的了解一下具体的作用,以及看看抽象类作用的例子吧! 一.java抽象类的作用 java抽象类的作用具体的可以分成以下的三点: 1 ...

  5. java中什么是空指针异常_JAVA中的空指针异常如何处理?

    你这个问题的解决 问题定位: 在堆栈异常信息的第一行就可以定位到是哪里出了空指针,倘若这里不是你写的类,可以往下翻一下,找到你写的类,就是这里出现的空指针. 问题解决: 对一个空对象调用里面的方法或者 ...

  6. java关键字有什么用_JAVA中关键字有什么用

    展开全部 Java关键e68a84e8a2ad3231313335323631343130323136353331333363356566字及其作用 一. 关键字总览: 访问控制 private pr ...

  7. java中如何定义接口_java中如何定义一个接口

    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下:[修饰符] interface 接口名 [e ...

  8. java当中如何修改路径_Java 中 更改文件路径

    java 中更改文件路径可以用file.renameTo 方法 public static void moveDataFile2Reject() throws Exception { try { // ...

  9. java中组件与容器_java中的容器组件和非容器组件

    1.java使用到的图形类主要在java.awt 与javax.swing包中. 2.java.awt 与 javax.swing包的区别: ① java.awt中使用的图形类都是依赖于系统的图形库的 ...

  10. java boolean几个字节_Java中boolean类型到底占用多少个字节?

    1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...

最新文章

  1. 修改mysql参数_mysql动态修改参数
  2. crontab 案例
  3. Pwntools的context设置与shellcode
  4. [zz]4.1.5 进程的处理器亲和性和vCPU的绑定
  5. seqkit根据基因id_Microwell-Seq
  6. mysql主从配置 热备_MYSQL 主从热备方式配置
  7. Objective-C基础
  8. 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三2-转
  9. 插入排序算法(insertion-sort)
  10. 基于MATLAB语音识别系统GUI界面
  11. MIT molecular Biology 笔记8 RNA剪接
  12. 课程设计每日总结0819
  13. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day8】 —— Redis2
  14. Mockito开发指南
  15. 我的世界android启动器,我的世界手机版启动器 安卓方块启动器教程
  16. Sql语句--日期函数用法
  17. idea 修改远程 git仓库地址到阿里云code 推送
  18. C++中的常函数与常对象
  19. 英文论文-城市云脑,基于互联网云脑的智慧城市新架构
  20. 快递查询的方法,快递如何批量查询

热门文章

  1. ui设计师作品集_设计师:8个建立和展示您的作品集的地方
  2. C语言从键盘上输入10个评委,编程:输入评委给出的10个分数,输出平均分
  3. C语言学习 18-11-8
  4. 计算机考研的意义,2019计算机考研数据结构复习:重要意义
  5. 计算机网络复习资料-谢希仁版
  6. 都2020年了还能看见奇葩的SQL写法
  7. python xlrd xlwt pandas openxyl导入方法对比 N/A
  8. 数据库系统工程师(第一章)
  9. 久石让-skycity-guitar version
  10. 性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)