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抽象语法的更多相关文章

  1. 【JAVA-JDT-AST】Java抽象语法树的构建、遍历及转成dot格式(附Github源码)

    Background: 最近为了重现tree-based clone detection的论文:L. Jiang, G. Misherghi, Z. Su, and S. Glondu. Deckar ...

  2. 1 Java程序文件中函数起始行和终止行在程序文件位置中的判定__抽象语法树方法

    应用需求: 实现对BigCloneBench中函数体的克隆检测,必须标注出起始行号和终止行号. 问题: 给定一个Java文件,从中提取出每个函数的起始行和终止行. 难点: 这个问题的难点在于,对于Ja ...

  3. java基础语法笔记

    这段时间看了一些java,急了一些笔记,记下一遍以后复习用! 2016-07-24 15:12:40 java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方 ...

  4. java基础语法(一)

    java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...

  5. Java 基本语法(关键字、标识符、常量、注释)

    1. Java 程序的构成 对象(object):对象是类的一个实例,有状态和行为. 类(class):类是一个模板,它描述一类对象的行为和状态. 方法(method):方法就是行为,一个类可以有很多 ...

  6. 第6天 Java基础语法

    第6天 Java基础语法 今日内容介绍 自定义类 ArrayList集合 引用数据类型(类) 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类 ...

  7. Java-Runoob:Java 基础语法

    ylbtech-Java-Runoob:Java 基础语法 1.返回顶部 1. Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍 ...

  8. 抽象语法树简介(ZZ)

    转载自: http://www.cnblogs.com/cxihu/p/5836744.html (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状 ...

  9. Java基础语法(自定义类、ArrayList集合)

    Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...

随机推荐

  1. 一个不错的loading效果--IT蓝豹

    一个不错的loading效果 介绍:一个不错的loading加载效果,弹性收缩,效果不错,学习android动画的朋友可以下载来研究研究本例子其实由SeekBar实现,由MetaballView,Me ...

  2. strcpy 和 strcat

    strcpy 原型:char *strcpy( char *dest, char *src )  头文件:#include <string.h> 功能:将src地址开始且含有NULL结束符 ...

  3. P4基函数

    July , P4 syms p1 p2 p3 phi(:,) = /*p1.*(*p1-).*(*p1-).*(*p1-); phi(:,) = /*p2.*(*p2-).*(*p2-).*(*p2 ...

  4. Maven Archetype

    1. 从project创建archetype 在项目根目录下,运行 mvn archetype:create-from-project 创建的archetype工程在app_folder/target ...

  5. NIO vs. BIO

    性能测试 BIO -- Blocking IO 即阻塞式IO NIO -- Non-Blocking IO, 即非阻塞式IO或异步IO 性能 -- 所谓的性能是指服务器响应客户端的能力,对于服务器我们 ...

  6. oracle 数据库的学习1

    1.oracle 数据库常用的基本类型 char(10)  -->存储固定长度的字符串 varchar2(10)-->存储可变长的字符串 Date INTEGER -->存储整数 N ...

  7. 干货|宏巍软件之Java线程监控之旅

    宏巍软件 许向 大家好,我是上海宏巍信息技术有限公司(简称:宏巍软件)的许向,宏巍软件成立于2005年,是一家以电商ERP软件开发为主的高新技术科技型软件公司,致力于为大型网商和电子商务企业提供专业. ...

  8. 安装Linux系统Fedora 23

    搭建了一个Linux(Fedora 23)环境,用于学习.实验. [TOC] 1 安装Fedora 以前一直只会光盘安装,刻录了好多个版本的distros,用完即弃在一旁.很浪费. 此次学会了在Lin ...

  9. LDAP与migrationtools 导入系统账号

    1:安装migrationtools yum -y install migrationtools 2:修改配置文件 cd     /usr/share/migrationtools 可以看到很多的文件 ...

  10. matlab 连续读取多个文件

    方法1: 把文件的文件名按一定的规律命名,假如:filename1.txt,filename2.txt,...,fielname100.txt,在读取的时候则可以使用循环: for i = 1:100 ...