Java中抽象类概述
抽象类
1.抽象类的定义
抽象类是为子类提供一个规范,这就必须联系到继承;
抽象类的制定就是让子类继承的;
public abstract 类名{
//类体
//抽象方法
修饰符 abstract 返回值类型 方法名(参数列表);
}
*抽象方法没有方法体:public abstract void test();
**普通方法有方法体:public void test(){//方法体};
(1)定义一个类,如果这个类是抽象类,那么这个类中至少含有一个抽象方法;
(2)再抽此昂类中的方法不一定是抽象方法,但含有抽象类的方法一定是抽象类
2.抽象类的使用
@Override用来检测是否重写成功
我们可以在抽象类中添加未实现的方法(抽象方法)
(1)一个类继承了抽象类,就必须重写该抽象类的所有抽象方法
(2)如果有一个类没有重写抽象类的抽象方法,那么这个类也要重新定义为抽象类
示例代码:
package com.java1995;
/**
* 猫科动物类
* @author ideaor
*
*/
public abstract class Feline {
private int legCount=4;
private String headShape="round";
private boolean meatEater=true;
/**
* 普通方法,动物呐喊
*/
public void cry(){
System.out.println("动物在狂吼");
}
/**
* 抽象方法,捕食
* @param animal
*/
public abstract void catchAnimal(Animal animal);
}
package com.java1995;
public class Animal {
}
package com.java1995;
public class Tiger extends Feline{
/**
* 老虎
*/
@Override
public void catchAnimal(Animal animal) {
// TODO Auto-generated method stub
System.out.println("老虎在捕食");
}
}
package com.java1995;
public class Cat extends Feline {
@Override
public void catchAnimal(Animal animal) {
// TODO Auto-generated method stub
//首先要判断捕食的animal是否是老鼠,如果是,可以捕食
if (animal instanceof Mouse){
System.out.println("猫正在捕食老鼠");
}
else
System.out.println("猫不能捕食");
}
}
package com.java1995;
public class Mouse extends Animal{
}
Java中抽象类概述的更多相关文章
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- Java中抽象类也能实例化
在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然 ...
- Java中抽象类也能实例化.RP
在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然 ...
- Java 中抽象类与接口的区别
TypeScript 中的接口,有点类似抽象类的概念.Java 中抽象类属于包含属性与抽象行为,而接口通常只是抽象行为.抽象类可以实现模板模式. 参考 https://www.cnblogs.com/ ...
- Java中抽象类和接口的用法和区别
一.抽象类 1.抽象类 包含一个抽象方法的类就是抽象类 2.抽象方法 声明而未被实现的方法,抽象方法必须使用abstract关键词字声明 public abstract class People { ...
- JAVA中抽象类的使用
抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象.抽象类体现的就是一种模板模式的设计,抽象父类可以只定义需要使用的某些方法,把不能实现的某些部分抽象成抽象方法,留给其子类去实现.具体来说,抽 ...
- java中抽象类的定义和使用
java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础. 指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类 ...
- java中抽象类跟接口的区别
额,好吧,本来是打算转载些神马的,但是搜资料的过程中发现了一个专注与java的人,那就关注啦,以后多进他blog学习学习:http://www.cnblogs.com/chenssy/p/337670 ...
随机推荐
- Linux命令(二十四) 磁盘管理命令(二) mkfs,mount
一.格式化文件系统 mkfs 当完成硬盘分区以后要进行硬盘的格式化,mkfs系列对应的命令用于将硬盘格式化为指定格式的文件系统.mkfs 本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.例 ...
- FuelPHP 系列(三) ------ Model 模型
框架封装好的 model 类有几个,按需继承就好. 有:/fuel/core/classes/model/crud.php /fuel/packages/orm/classes/model.php / ...
- SparkException: Master removed our application
come from https://stackoverflow.com/questions/32245498/sparkexception-master-removed-our-application ...
- 00405EB0 mov eax,dword ptr [ecx] 是什么意思?
dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345 ...
- Windows 64位环境的Java 服务配置
有个任务,需要远程起调Windows64服务器下的程序,那么需要在Windows服务器中注入一个deamon服务,都知道Linux环境做成后台服务非常简单,nohup &很快能解决问题,但wi ...
- 关于找List的中间Node
初始值 slow = fast = head; 如果使用 fast && fast->next && fast->next->next 作为快慢指针循 ...
- python(27) 抓取淘宝买家秀
selenium 是Web应用测试工具,可以利用selenium和python,以及chromedriver等工具实现一些动态加密网站的抓取.本文利用这些工具抓取淘宝内衣评价买家秀图片. 准备工作 下 ...
- 管理KVM虚拟机(二)
管理KVM虚拟机 工具:libvirt 官网:http://libvirt.org/ 介绍:Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 ...
- Python内置模块-日志模块(logging)常见用法
Python内置模块-日志模块(logging)常见用法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初识logging模块 #!/usr/bin/env python #_ ...
- ASP.NET MVC学习(三)之过滤器Filter
http://www.cnblogs.com/yaopengfei/p/7910763.html