Java抽象类和抽象方法概述
2015-10-31 12:23
302 查看
用关键字abstract修饰类,就是抽象类。用关键字abstract修饰就是抽象方法。
对于抽象方法,只允许声明,没有方法体。而且不允许使用final和abstract同时修饰一个方法或者类,也不允许使用static修饰抽象方法,即抽象方法必须是实例方法。
1.抽象类中可以有抽象方法,也可以没有抽象方法
2.抽象方法不能被实例化,即不能被new创建对象
不能使用new来创建抽象类的对象。如果一个非抽象类是一个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体,这就是为什么不能用final和abstract同时修饰一个类或方法的原因。
3.抽象类的对象作上转型对象
尽管不能用new来创建抽象类的对象,但是抽象类可以成为其子类对象的上转型对象,那么就可以调用子类重写的方法。
对于抽象方法,只允许声明,没有方法体。而且不允许使用final和abstract同时修饰一个方法或者类,也不允许使用static修饰抽象方法,即抽象方法必须是实例方法。
1.抽象类中可以有抽象方法,也可以没有抽象方法
2.抽象方法不能被实例化,即不能被new创建对象
不能使用new来创建抽象类的对象。如果一个非抽象类是一个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体,这就是为什么不能用final和abstract同时修饰一个类或方法的原因。
3.抽象类的对象作上转型对象
尽管不能用new来创建抽象类的对象,但是抽象类可以成为其子类对象的上转型对象,那么就可以调用子类重写的方法。
package com.seven.j_hbm_extends; public class Example { public static void main(String[] args) { Dog dog = new Dog();//子类创建对象 System.out.println("排名是:"+ dog.paiming2());//子类调用自己的方法 dog.speak();//子类调用重写父类的抽象方法 Animal animal=dog;//父类成为子类的上传型对象 System.out.println("排名是:"+animal.paiming1());//父类调用自己的方法 animal.speak();//父类调用自己的抽象方法 } } abstract class Animal{ abstract void speak(); int paiming1(){ return 1; } } class Dog extends Animal{ void speak() { System.out.println("我是高级动物"); } int paiming2(){ return 2; } }
相关文章推荐
- 我为何坚守Java?
- 关于struts 2中的日期问题
- 在java中实现输入两个正整数m和n,求最大的公约数和最小公倍数
- 看了以后对Spring中IOC和DI有一种醍醐灌顶的感觉(转载)
- Java 中的目录创建处理
- Java 判断文件夹、文件是否存在、否则创建文件夹
- Java容器填充-1
- 《Spring JDBC详解》
- java ArrayList无限添加元素
- java 什么是组件
- Spring MVC框架搭建
- 利用Zabbix低级发现结合jstat命令自动监控Java进程
- [Java]读取文件方法大全
- java中输入一行字符,分别统计英文字母、空格、数字的个数
- JavaMap以及Java.Entry详解
- Spring--ClassPathResource
- Spring--ClassPathResource
- java 高并发无锁框架 Disruptor 系列一
- Spring-BeanFactory
- Spring-BeanFactory