java抽象语法
1、基本概念:
0.0、抽象类的定义:抽象类是为子类提供一个规范,其目地是由子类去继承实现(类似国家提出的法律,由我们去执行)。
0.1、定义抽象类用abstract来定义。
语法: public abstract class 类名{ //code };
0.2、抽象类不能使用new方法进行实例化的类。
0.3、什么时候用到抽象类:
在父类中只需要规定各子类共有的哪些属性,而不需要给出属性的具体信息;但是,父类的这些属性对每个子类可能是不同的,
需要在各子类中进行具体的定制。
0.4、抽象类中可以有普通方法,但普通类不能有抽象方法。
public abstract class 类名{
public abstract void abstract_say();
public void common_say(){ //code };
};
0.5、如果一个类继承的抽象类,就必须重写该抽象类中的所有的抽象方法(普通重不重写都没关系),否则报错.


但是如果不想重写抽象类的所有抽象方法,只需将子类修改成抽象类即:public abstract class extend_Abstra_Test extends Test(){ } ;

2、小案例:
猫科动物: 是一类几乎专门以肉食为主的哺乳动物(例举:猫、老虎、猎豹)。
写出猫科两个行为:走、吃
分析:
走:猫科走路的行为一致(定义一个普通方法)。
吃:
老虎:只要是动物都吃。
老虎和猫吃的行为不一样
猫:只吃鱼和老鼠(判断吃的是鱼和老鼠还是其他)。
代码:
Felidea抽象类:
public abstract class Felidea {
/**
* 走:猫科走路的行为一致(定义一个普通方法)。
**/
public void go_Walk(){
System.out.println("go walk~~~~~");
};
/**
* 吃:
老虎:只要是动物都吃。
~~~老虎和猫吃的行为不一样
猫:只吃鱼和老鼠(判断吃的是鱼和老鼠还是其他)。
**/
//吃定义为抽象方法
public abstract void Eat(Animal animal);
}
Animal类:
public class Animal {
/**
* Animal主要是共同属性,方便其他动物继承
**/
};
Fishs鱼类(继承动物类的属性):
public class Fishs extends Animal{ };
Mouse老鼠类(继承动物类的属性):
public class mouse extends Animal(){ };
Tiger老虎类:
public class Tiger extends Felidea{
@Override // 重写
public void Eat(Animal animal) {
System.out.println("老虎什么都吃");
}
}
Cat猫类:
public class Cat extends Felidea{
@Override
public void Eat(Animal animal) {
if(animal instanceof Mouse || animal instanceof Fishs){
System.out.println("猫正在捕食老鼠和鱼");
}else{
System.out.println("猫不捕食其他动物");
}
}
}
java抽象语法的更多相关文章
- 【JAVA-JDT-AST】Java抽象语法树的构建、遍历及转成dot格式(附Github源码)
Background: 最近为了重现tree-based clone detection的论文:L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckar ...
- 1 Java程序文件中函数起始行和终止行在程序文件位置中的判定__抽象语法树方法
应用需求: 实现对BigCloneBench中函数体的克隆检测,必须标注出起始行号和终止行号. 问题: 给定一个Java文件,从中提取出每个函数的起始行和终止行. 难点: 这个问题的难点在于,对于Ja ...
- java基础语法笔记
这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...
- java基础语法(一)
java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...
- Java 基本语法(关键字、标识符、常量、注释)
1. Java 程序的构成 对象(object):对象是类的一个实例,有状态和行为. 类(class):类是一个模板,它描述一类对象的行为和状态. 方法(method):方法就是行为,一个类可以有很多 ...
- 第6天 Java基础语法
第6天 Java基础语法 今日内容介绍 自定义类 ArrayList集合 引用数据类型(类) 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类 ...
- Java-Runoob:Java 基础语法
ylbtech-Java-Runoob:Java 基础语法 1.返回顶部 1. Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍 ...
- 抽象语法树简介(ZZ)
转载自: http://www.cnblogs.com/cxihu/p/5836744.html (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状 ...
- Java基础语法(自定义类、ArrayList集合)
Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...
随机推荐
- note->notice
登陆博客园,乍眼一看上一篇博客的日期还是2月底,如今已是5月份,期间好几次想要记录一些东西,总感觉现在一天二十四小时越来越短,有几次登陆博客园甚至连密码都要重置一下才能登陆...这两个月的时间里经理了 ...
- 第十五课:奇葩的元素节点iframe
iframe一般用来加载一个页面,然后嵌入到主页面中.创建起来消耗资源,而且消耗连接数.但是它是一个物超所值的东西,可以实现无缝刷新,模拟onhashchange跨域,安全的加载第三方资源与广告,实现 ...
- input输入框怎么禁止粘贴
<input type="text" value="" onpaste="return false;" /> 原文出处:http ...
- web之css伪类
利用伪类清楚浮动: 代码: <!DOCTYPE html> <htmllang="en"> <head> <metacharset=&qu ...
- android studio中如何设置注释模板
在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等.那么在android studio中该如何设置呢? 工具/原料 andro ...
- sass、less和stylus的安装使用和入门实践
刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...
- ELK:kibana使用的lucene查询语法【转载】
kibana在ELK阵营中用来查询展示数据 elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 全文搜索 在搜索栏输入login,会返回所有字段值中包含login的文档 使 ...
- 我 && yii2(日志埋点,邮件提醒)
今天试着把yii2 的日志,如果发送邮件的形式实现,具体实现如下 1.环境介绍 lnmp php5.6, mysql5.5, lnmp1.2 yii2-advanced 2.配置文件的编写 在fron ...
- linux启动执行某个脚本
如果是开机马上执行的脚本,可以将脚本写到rc.local中: 如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下“-/.bash_profile”,若脚本“-/.bash_profile”不 ...
- iOSDate时间格式(转)
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...