JAVA——abstract(抽象)
2016-04-19 20:43
260 查看
abstract的性质
1、abstract(抽象)可以修饰类、方法2、如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。
3、abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。
4、abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。
5、final和abstract永远不会同时出现,因为abstract就是要被继承的,而被final修饰的类不可能被继承。
6、当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。
abstract void print();
如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。
如果一个类为抽象类,那么其中可能有非抽象的方法。
如果一个抽象类中有两个抽象方法,子类继承以后必须实现这两个抽象方法,如果只实现其中一个,那个子类还是抽象类。
抽象类VS一般类
1、抽象类和一般类没有什么太大的不同,该如何描述事物就如何描述事物,只不过,该事物出现了一些看不懂的东西。这些不确定的部分,也是该事物的狗功能,需要明确出现,但是无法定义主体。2、抽象类比一般类多了抽象函数。就是在类中可以定义抽象方法。
3、抽象类不可以实例化。
4、抽象类中可以没有抽象方法。这样做仅仅是为了不让该类建立对象。
举例
要求:假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性;姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
abstract class Employee { private String name; private String id; private double pay; public Employee(String name,String id,double pay) { this.name = name; this.id = id; this.pay = pay; } public abstract void work(); } class Manager extends Employee{ private int bonus; public Manager(String name, String id, double pay,int bonus) { super(name, id, pay); this.bonus = bonus; } @Override public void work() { System.out.println("Manager work"); } } class Pro extends Employee{ public Pro(String name, String id, double pay) { super(name, id, pay); } @Override public void work() { System.out.println("Pro work"); } }
相关文章推荐
- 【java项目实战】Servlet详解以及Servlet编写登陆页面(二)
- [置顶] JAVA 压缩图片-解析一维码二维码
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- 【java读书笔记】——java的异常处理
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- java.util.Scanner应用详解
- eclipse中的android项目转入android studio
- java.关于线程同步的几个知识点
- Java堆中的对象分配、布局和访问
- 手把手教你搭建SpringMVC——最小化配置
- java中volatile关键字的含义
- Java泛型
- spring学习——常用注解
- java学习中一些基础知识
- java环境变量配置及详解
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- springmvc 处理异步请求
- 一台电脑安装多个JDK
- javaweb
- eclipse与idea中classpath配置路径不同导致迁移项目时的FileNotFoundException问题