抽象的基本使用

抽象的关键字是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_抽象的更多相关文章

  1. java_基础_abstract抽象关键字

    java中,当父类中的某些东西不确定时,可以用abstract关键字将此类变成抽象类(也就是说类并不完整,有些东西要等待子类去实现) 注意事项: 1.抽象类中的抽象方法不能有实体,格式如下 publi ...

  2. Java_框架面试题

    Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础 ...

  3. 设计模式C#合集--抽象工厂模式

    抽象工厂,名字就告诉你是抽象的了.上代码. public interface BMW { public void Drive(); } public class BMW730 : BMW { publ ...

  4. PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  5. 编译器开发系列--Ocelot语言1.抽象语法树

    从今天开始研究开发自己的编程语言Ocelot,从<自制编译器>出发,然后再自己不断完善功能并优化. 编译器前端简单,就不深入研究了,直接用现成的一款工具叫JavaCC,它可以生成抽象语法树 ...

  6. 设计模式之工厂模式VS抽象工厂

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  7. CacheManager:–个通用缓存接口抽象类库

    CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站  http://cachemanager ...

  8. 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在

    上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...

  9. 列表组件抽象(2)-listViewBase说明

    这是我写的关于列表组件的第2篇博客.前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共 ...

随机推荐

  1. P1601_A+B Problem(高精)(JAVA语言)

    思路:BigInteger first blood! //四行搞定 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] ...

  2. OpenGL光照计算中法线矩阵原理及推到过程

    问题起源 在计算漫反射关照时,需要用到法线,通过法线和光线的点乘值,计算漫反射的产生的光线强度,所以需要从顶点着色器中将法线数据传递到片源着色器中,但是片源着色器中的顶点坐标是经过了模型矩阵变化过的世 ...

  3. 10、Spring教程之整合MyBatis

    1.步骤 1.导入相关jar包 junit <dependency> <groupId>junit</groupId> <artifactId>juni ...

  4. 玩玩CSS,写一个图标堆叠效果

    遇到有人问如下效果怎么写,一时兴起,自己写一个玩玩. 看到这个样子,首先应该考虑一下 DOM 结构,以我的观点,把DOM结构设计为如下形式: <div> <img src=" ...

  5. Android Studio配置colors.xml

    •colors.xml <?xml version="1.0" encoding="utf-8"?> <resources> <! ...

  6. ls:未找到命令

    解决,别问为什么. 执行 export PATH=/bin:/usr/bin:$PATH

  7. 复制文件--cp

    cp file1 file2    将文件拷贝到指定路径下 cp -r dir1 dir2  将文件夹拷贝到指定路径下

  8. angular+ionic -- 启动命令

    初始angular+ionic项目,启动需ionic的启动命令: ionic serve

  9. OO_Unit4 UML模型化设计总结

    OO_Unit4 UML模型化设计总结 任务简介:本单元在介绍了UML中几种基本的模型图元素的基础上,通过实现课程组提供的官方接口来完成自己的UML解析器. 架构设计 本单元最终的整体架构图如下(不包 ...

  10. OO_Unit4暨学期总结

    OO_Unit4暨学期总结 一.本单元架构设计 1.1 第13次作业架构设计 就我个人而言,这次作业应该是本单元难度最大的一次作业,原因在于陡然转向UML后,对UML各个元素的关系理解需要先下一番功夫 ...