面向对象17:抽象类和抽象方法、创建抽象类的匿名子类对象、模板方法设计模式
抽象类和抽象方法
abstract关键字的使用
1.翻译为“抽象的”
2.abstract可以用来修饰的结构:类、方法
3.abstract修饰类:抽象类
- 此类不能实例化
- 抽象类中一定有构造器,便于子类实例化的时候调用(涉及:子类对象实例化的全过程)
- 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
4.abstract修饰方法:抽象方法
- 抽象方法只有方法的声明,没有方法体
- 包含抽象方法的类,一定是一个抽象类。反之,抽象类中是可以没有抽象方法的。
- 若子类重写了父类中的所有抽象方法,则此子类方可实例化。
- 若子类没有重写父类中所有的抽象方法,则意味着此子类也是一个抽象类,需要使用abstract修饰。
abstract使用上的注意点:
- abstract不能用来修饰:属性、构造器等结构
- abstract不能用来修饰私有方法、静态方法、final的方法、final的类
抽象类的匿名子类对象
Person p = new Person(){@Overridepublic void eat(){System.out.println("吃");}@Overridepublic void breath(){System.out.println("呼吸");}
}
其中Person是个抽象类,含有抽象方法eat和breath。
也可以直接用匿名子类的匿名对象:
method1(new Person()){@Overridepublic void eat(){System.out.println("吃");}@Overridepublic void breath(){System.out.println("呼吸");}
}
多态的应用:模板方法设计模式(TemplateMethod)
当功能内部一部分实现是确定的,一部分实现是不确定的,这时可以把不确定的部分暴露出去,让子类实现。
面向对象17:抽象类和抽象方法、创建抽象类的匿名子类对象、模板方法设计模式相关推荐
- 十一、接口(接口的概念,实现,继承,实现)、抽象类与抽象方法(抽象类,抽象方法概念,使用)...
接口 接口是一种用来定义程序的协议,它描述可属于任何类和结构的一组相关行为. 接口可由方法.属性.事件和索引器这四种成员类型的任何组合构成,但不能包含字段. 接口通过类继承来实现,一个类虽然只能继承一 ...
- 25、Java面向对象——抽象类和抽象方法、接口
目录 课前先导 一.抽象方法 1.定义 2.语法格式 3.抽象方法与普通方法的区别 二.抽象类 1.定义 2.语法格式 3. 抽象类和普通类的区别 4.为什么使用抽象类 三.代码演示 1.创建抽象类 ...
- 抽象方法和抽象类规则
一 抽象方法和抽象类的规则 1 抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体. 2 抽象类不能被实例化,无法使用new关键字来调用抽 ...
- 黑马毕向东Java课程笔记(day07):面向对象(第三部分)继承+抽象类+模板方法设计模式+接口+final+继承补充(就业班)
在这一部分中,我们将讲解有关继承的相关内容,包括继承的概述.继承的特点.super关键字.函数覆盖.子类的实例化过程.final关键字这几个部分的内容. 1.继承的概述以及特点 1.1.概述 ...
- Java 抽象类和抽象方法
Java 抽象类和抽象方法 抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类. 使用抽象类可以充分利用这些公共属性来提高开发和维护程序的效率. 抽象方法必须为public或prote ...
- 抽象类与抽象方法 c# 1613720553
抽象类与抽象方法 c# 1613720553 如果一个类不打算实例化 它只用于提供一些子类必需实现的方法 可以考虑把它们抽象化 抽象类定义的注意事项 子类继承抽象类的注意事项 定义抽象类与抽象方法 注 ...
- 【C# 教程系列第 11 篇】什么是抽象类、抽象方法
这是[C# 教程系列第 11 篇],如果觉得有用的话,欢迎关注专栏. 文章目录 一:什么是抽象类.抽象方法 二:抽象类的特性 1:抽象类不能实例化 2:抽象类可以包含抽象方法和抽象访问器 3:不能用 ...
- 【Java笔记】抽象类与抽象方法(abstract关键字)的使用
随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用.类的设计应该保证父类和子类能够共享特征.有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类. 目录 a ...
- java中抽象类的匿名子类和匿名对象
package com.atguigu.com;/** **抽象类的匿名子类和匿名对象*** * * */public class PeronTest {public static void main ...
- 第二章:Java面向对象:抽象(abstract)类、模板方法设计模式、接口(interface)、关键字-implements(实现)、代理模式
package com.atguigu.java; /** Abstract关键字的使用:* 1.abstract:抽象的* 2.abstract可以用来修饰:类.方法* * 3.abstract 修 ...
最新文章
- 快速搭建第一个Mybatis程序
- linux 删除文件夹
- 基于深度学习的目标检测的研究进展2
- 【大数据】大数据思维的十大核心原理
- 卡尔曼滤波器学习笔记(一)
- Js中数组去重的几种方法
- matlab和python中的svd分解的区别
- python set集合_Python字典(dict)和集合(set)
- 触发日期spring3整合quartz实现任务调度功能
- 子列和列_最大子列和 - fanlinglong - 博客园
- Windows 10 优化
- linux网络子系统分析(五)——netfilter
- java excel 转txt_用Java实现excel转txt
- vba随机抽取人名不重复_用vb编写个随机滚动抽取人名的抽奖系统,怎么样做到不重复并添加一个记录显示已抽到的人名...
- Unity3D发布微信小程序
- Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
- PISCES: A Programmable, Protocol-Independent Software Switch(总结)
- 【数据科学家】如何成为一名数据科学家?
- length()与lengthb()的区别
- css中的@mixin的用法
热门文章
- flume学习(一):log4jAppender直接输出日志到flume的avro-source
- spark通过合理设置spark.default.parallelism参数提高执行效率
- Nginx的静态文件合并请求,加快网站的加载速度
- Go 语言的垃圾回收算法被吹过头?与Java比如何?
- 《软件设计师》考点分布
- fir.im Weekly - 2016 年 Android 最佳实践列表 1
- Android UI--自定义ListView(实现下拉刷新+加载更多)
- 输出判断Codeforces Round #184 (Div. 2)
- Python3学习笔记18-访问限制
- Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)