Java_抽象
抽象的基本使用
抽象的关键字是abstract,可以用来修饰类(抽象类),还可以修饰方法(抽象方法)。
1 //抽象类
2 public abstract class Animal{
3 //抽象方法
4 public abstract void eat();
5 //抽象方法
6 public abstract void sleep();
7 }
8
9 public class Dog extends Animal{
10 @Override
11 public void eat(){
12 System.out.println("狗吃骨头");
13 }
14
15 @Override
16 public void sleep(){
17 System.out.println("狗在窝里睡");
18 }
19 }
抽象的注意事项
1.抽象类中可以有抽象方法,也可以有非抽象方法
2.有抽象方法的类,必须是抽象类
3.抽象方法不能写方法体
4.具体的子类继承抽象类,必须重写父类中所有的抽象方法。否则就让子类继续抽象
5.抽象类不能创建对象
模板设计模式
在一个父类中定要好一些方法,有些方法是抽象的,有些方法是具体的。当子类继承父类的时候,只需要重写父类的抽象方法,完成自己的功能就可以了。
1 //作文的模板
2 public abstract class Teamplate{
3 //写作为的方法
4 public void write(){
5 //开头
6 System.out.println("这是作文的开头。。。");
7
8 //正文(交给子类是完成)
9 body();
10
11 //结尾
12 System.out.println("这是作文的结束。。。");
13 }
14
15 //正文的方法(抽象方法)
16 public abstract void body();
17 }
18
19
20 //写一个子类,继承Teamplate
21 public class Tom extends Teamplate{
22 public void body(){
23 System.out.println("这是Tom写的作文的正文");
24 }
25 }
26
27 public class Test{
28 public static void main(){
29 Tom t=new Tom();
30 t.write();
31 }
32 }
final关键字
final是最终的意思,可以用来修饰类、方法、变量
1.final修饰类,不能被继承
2.final修饰方法,不能被重写
3.final修饰变量,不能被修改(final修饰的变量,值不能被赋值一次)
如果是引用类型,指的是地址值不能被更改
代码块
代码块本质上是一对大括号,在类中的位置不同,作用也不同。
局部代码块:在方法中,用于限定变量的作用范围
构造代码块:在类中方法外,用来提取构造方法的共性代码
每次创建对象,都会先执行构造代码块,再执行对应的构造方法。
静态代码块:被static修饰的代码块,在类中方法外。用作一些初始化的操作
当使用到这个类的时候,static代码会自动执行,而且只执行一次。
Java_抽象的更多相关文章
- java_基础_abstract抽象关键字
java中,当父类中的某些东西不确定时,可以用abstract关键字将此类变成抽象类(也就是说类并不完整,有些东西要等待子类去实现) 注意事项: 1.抽象类中的抽象方法不能有实体,格式如下 publi ...
- Java_框架面试题
Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础 ...
- 设计模式C#合集--抽象工厂模式
抽象工厂,名字就告诉你是抽象的了.上代码. public interface BMW { public void Drive(); } public class BMW730 : BMW { publ ...
- PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)
一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...
- 编译器开发系列--Ocelot语言1.抽象语法树
从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...
- 设计模式之工厂模式VS抽象工厂
一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...
- CacheManager:–个通用缓存接口抽象类库
CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站 http://cachemanager ...
- 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在
上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...
- 列表组件抽象(2)-listViewBase说明
这是我写的关于列表组件的第2篇博客.前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共 ...
随机推荐
- P1604_B进制星球(JAVA语言)
思路:BigInteger 五杀!利用BigInteger自带的进制转换. //第一次提交WA了几组数据,下载测试数据发现带字母的答案要转换为大写. 题目背景 进制题目,而且还是个计算器~~ 题目描述 ...
- unable to read askpass response from 'C:\Users\wxy\.IntelliJIdea2019.1\system\tmp\intellij-git-askpass.bat' bash: /dev/tty: No such device or address failed to execute prompt script (exit code 1)
解决方法:
- 创建Maven父子项目以及它们的优点
此文引用:https://blog.csdn.net/zxl8876/article/details/104180133 创建maven父子项目 第一步创建父项目: 新建一个普通的maven项目 删除 ...
- 提高Python的性能
01 使用哈希表的数据结构 如果在程序中遇到大量搜索操作时,并且数据中没有重复项,则可以使用查找而不是循环.举例如下: items = ['a', 'b',..,'100m'] #1000s of ...
- [递推] A. 【例题1】错排问题
A. [例题1]错排问题 题目描述 求多少个 n n n个数的排列 A A A ,满足对于任意的 i ( 1 ≤ i ≤ n ) i(1 ≤ i ≤ n) i(1≤i≤n) 使 A i ≠ i Ai ...
- java面试一日一题:如何优化sql
问题:请讲下在mysql下如何优化sql 分析:该问题主要考察对mysql的优化,重点考虑对索引优化的掌握. 回答要点: 主要从以下几点去考虑, 1.什么样的sql需要优化? 2.怎么对sql进行优化 ...
- 【ProLog - 4.0 List】
[简介] 列表是Prolog编程中常用的一种重要的递归数据结构 列表是一个有限的元素序列 实例: 所有Prolog术语都可以是列表的元素,一个非空的List应该含有两个元素:头元素(Head)和尾元素 ...
- 消息队列高手课,带你从源码角度全面解析MQ的设计与实现
消息队列中间件的使用并不复杂,但如果你对消息队列不熟悉,很难构建出健壮.稳定并且高性能的企业级系统,你会面临很多实际问题: 如何选择最适合系统的消息队列产品? 如何保证消息不重复.不丢失? 如果你掌握 ...
- JavaWeb 补充(Servlet)
Servlet: server applet 概念: 运行在服务器端的小程序 * Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则. * 将来我们自 ...
- Unity2D项目-平台、解谜、战斗! 1.5 Player框架、技能管理组件
各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 前文提到,凡是有"攻击"语义的对象,在游戏中,我们给予其一个"CanFight"组件予 ...