1 package face_09;
2 /*
3 * 抽象类:
4 * 抽象:笼统,模糊,看不懂!不具体。
5 *
6 * *特点:
7 * 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。
8 * 抽象方法必须定义在抽象类中。该类必须也被abstract修饰。
9 * 2,抽象类不可以被实例化。为什么?因为调用抽象方法没意义。
10 * 3,抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化。
11 * 否则,这个子类还是抽象类。
12 * *问题:
13 * 1,抽象类中有构造函数吗?
14 * 有,用于给子类对象进行初始化。
15 *
16 * 2,抽象类可以不定义抽象方法吗?
17 * 可以的。但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类
18 * 通常这个类中的方法有方法体,但是却没有内容。
19 *
20 * class Demo{
21 * void show1(){}
22 * void show2(){}
23 * }
24 * 3,抽象关键字不可以和哪些关键字共存?
25 * private abstract不行 一般抽象方法用于被覆盖,private后私有化不能覆盖
26 * static abstract不行 成员变静态 不需要对象,类名调用方法,但抽象方法调用没意义方法体都没有。
27 * final abstract不行 final修饰不能有子类,两者排斥
28 * 4,抽象类和一般类的异同点。
29 * 相同点:
30 * 抽象类和一般类都是用来描述事物的,都在内部定义了成员。
31 * 不同点:
32 * 1,一般类有足够的信息描述事物。
33 * 抽象类描述事物的信息有可能不足。
34 * 2,一般类中不能定义抽象方法,只能定义非抽象方法。
35 * 抽象类中可以定义抽象方法,同时也可以定义非抽象方法。
36 * 3,一般类可以被实例化。
37 * 抽象类不可以被实例化。
38 * 5,抽象类一定是个父类吗
39 * 是的,因为需要子类覆盖其方法后才可以对子类实例化。
40 */
41 abstract class Demo{
42
43 abstract /*抽象*/void show();
44
45 }
46 class DemoA extends Demo {
47 void show() {
48 //System.out.println("demoa show");这里不覆盖就会有继承上面的抽象方法,该类也必须是抽象类
49 }
50 }
51 class DemoB extends Demo {
52 void show() {
53 System.out.println("demob show");
54 }
55 }
56
57 abstract class 犬科 {
58 abstract void 吼叫();
59 }
60 class 狗 extends 犬科 {
61 void 吼叫() {
62 System.out.println("汪汪");
63 }
64 }
65 class 狼 extends 犬科 {
66 void 吼叫() {
67 System.out.println("嗷嗷");
68 }
69 }
70 public class AbstractDemo {
71 public static void main(String[] args) {
72 System.out.println("Hello World");
73 }
74 }

java抽象类概述特点的更多相关文章

  1. Java集合--概述

    目录 Java集合--概述 摘要 图示 正文 Java集合--概述 摘要 ​ 本文主要介绍集合的整体概念,并作为接下来Java集合实现类讲解的索引. 图示 ​ 这是在网上看到了这样一张图,感觉很清晰, ...

  2. Java集合——概述

    Java集合——概述 摘要:本文主要介绍了几种集合类型以及有关的一些知识点. 集合类图 类图 类图说明 所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collecti ...

  3. Java Annotation概述

    @(Java)[Annotation|Java] Java Annotation概述 用途 编译器的相关信息,如用于检测错误和一些警告 编译时和部署时的处理,如一些软件用于自动生成代码之类的 运行时处 ...

  4. java抽象类

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...

  5. 《java集合概述》

    JAVA集合概述: Collection: |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. List提供了增删改查的动作. 增加add(element) add(in ...

  6. Java的概述以及语法

    Java的语法分为标示符和数据类型 Java的概述: 一些手打的: long l = 12345; //隐式转换 int a = (int)121234567L; //强制转换 float f =12 ...

  7. Java接口、Java抽象类、C++抽象类的区别

    由于这三种数据类型都是为了创建类层次结构的顶层构架,且用法有些许相似之处,这里简单区分一下: 接口: 接口用interface关键字定义, 名字一般使用-able形式的形容词. 接口通常定义抽象方法和 ...

  8. java抽象类与接口的区别及用法

    java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...

  9. Java 抽象类与接口总结

    一.为什么要使用抽象类?有什么好处? 抽象类是通用接口.不同的子类可以用不同的方法表示此接口.通用接口建立起一种基本形式,以此表示所有子类的共同部分. 必须覆写父类abstract抽象的方法  含有抽 ...

随机推荐

  1. JAVA连接MySQ报错:Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version

    Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version at sun.security.ssl.Al ...

  2. 【LeetCode】890. Find and Replace Pattern 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典+set 单字典 日期 题目地址:https:/ ...

  3. 【LeetCode】589. N-ary Tree Preorder Traversal 解题报告 (Python&C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 迭代 日期 题目地址:https://leetc ...

  4. 【LeetCode】840. Magic Squares In Grid 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 利用河图规律 暴力解法 日期 题目地址:https: ...

  5. Spring Boot 使用 Filter

    Filter 是 JavaEE 中 Servlet 规范的一个组件,位于包javax.servlet 中,它可以在 HTTP 请求到达 Servlet 之前,被一个或多个Filter处理. 1. 编写 ...

  6. 第九个知识点:香农(Shannon)定义的熵和信息是什么?

    第九个知识点:香农(Shannon)定义的熵和信息是什么 这是计算机理论的最后一篇.我们讨论信息理论的基础概念,什么是香农定义的熵和信息. 信息论在1948年被Claude E.Shannon建立.信 ...

  7. Pydantic使用

    Pydantic可以在代码运行时提供类型提示, 数据校验失败时提供友好的错误提示, 使用Python的类型注解来进行数据校验和settings管理 一般使用 from datetime import ...

  8. [开发配置]Linux系统配置开发环境

    deeplin系统配置开发环境 开发系统:deeplin 15.11 开发工具:Clion 2019.2 ; PyCharm 2019 ; Idea 2019;  Android Studio 开源库 ...

  9. CS5268替代AG9321MCQ 替代AG9321方案 TYPEC转HDMI多功能拓展坞

    台湾安格AG9321MCQ是一款TYPEC拓展坞产品方案,他集中了TYPEC 转HDMI  VGA  PD3.0快充  QC3.0数据传输 I2S接口的音频DAC输出以及可以各种读卡器功能. Caps ...

  10. 使用.NET 6开发TodoList应用(16)——实现查询排序

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 关于查询的另一个需求是要根据前端请求的排序字段进行对结果相应的排序. 目标 实现根据排序要求返回排序后的结果 原理与思路 要实 ...