Java
基础知识
01概述
02变量
03运算符
04程序控制语句
05数组
06面向对象编程
07代码练习
08重载
09作用域
10构造方法&构造器
11this
12包
13修饰符
14封装
15继承
16super
17覆盖&重写
18多态
19零钱通项目
20类变量&类方法
21抽象类
22接口
23内部类
24枚举
25泛型
26常用API
27lambda表达式
28正则表达式
29异常
30File&IO流
31日志技术
32多线程
33网络编程
-
+
首页
21抽象类
## 概述 > 应用场景 - 父类知道每个子类都要做的某个行为,但每个子类要做的情况不一样时,父类就可以定义成抽象方法,交给子类去重写实现(更好的支持多态) > 语法 - 抽象类:访问修饰符 abstract 类名{} - 抽象方法:访问修饰符 abstract 返回类型 方法名([参数列表]); > 注意事项 - 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类 - 类该有的成员(成员变量、方法、构造器)抽象类都可以有 - **抽象类中不能创建对象,仅作为一种特殊的父类,让子类继承并实现** - 一个类继承抽象类,必须重写完抽象类中的全部抽象方法,否则这个类也必须定义为抽象类 > demo ```java package com.static_; public class Test { public static void main(String[] args) { Animal a1 = new Cat(); a1.setName("小猫咪"); a1.cry(); Animal a2 = new Dog(); a2.setName("小狗"); a2.cry(); } } ``` ```java package com.static_; public abstract class Animal{ private String name; public abstract void cry(); public String getName(){ return name; } public void setName(String name){ this.name = name; } } ``` ```java package com.static_; public class Cat extends Animal{ public void cry(){ System.out.println(getName() + "喵喵喵"); } } ``` ```java package com.static_; public class Dog extends Animal{ public void cry(){ System.out.println(getName() + "汪汪汪"); } } ``` ## 模板方法设计模式 > 解决了什么问题 - 解决了方法中存在重复代码的问题 > 写法 - 定义一个抽象类 - 在抽象类中定义两个方法: - 模板方法:放相同的代码 - 抽象方法:具体实现交给子类完成、
毛林
2025年9月7日 12:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码