java基础之抽象和接口
2014-11-02 00:45
323 查看
1、 instanceof 这是一个运算符,只能够返回 true 或者 false
用法:
2、抽象 abstract :1) 任何类都可以抽象
2)空类抽象作为标识类
3)类中有一个抽象方法,该类必为抽象类
4)抽象类不能实例化
5)抽象类通过继承来实现
6)抽象类可以包含非抽象的方法
7)静态、构造方法不能抽象
用法:
下面讲述一个例子来帮助理解:
下面是月薪雇员 和 时薪雇员 对抽象父类的继承和实现
测试类比较简单,大家可以自己试着写写,本人写的简单源代码也有上传。四个类全部在同一文件中,所以上述三个类都没有 public 权限。
用法:
x instanceof y判断 x 是否为 y 的一个实例
2、抽象 abstract :1) 任何类都可以抽象
2)空类抽象作为标识类
3)类中有一个抽象方法,该类必为抽象类
4)抽象类不能实例化
5)抽象类通过继承来实现
6)抽象类可以包含非抽象的方法
7)静态、构造方法不能抽象
用法:
abstract class 类名{ abstract 返回值类型 方法名(参数列表);// 因为是抽象方法不能实现,不能再参数列表之后写入语句块 { } }
下面讲述一个例子来帮助理解:
abstract class Employee{ //Employee 为一个抽象类 private String name; //私有属性 private String number; public Employee(){ } //无参构造方法,当你重新写入了一个有参构造方法,一定要再写一个无参的,防止覆盖 public Employee(String name,String number){ //有参构造方法 this.name=name; this.number=number; } public String getName(){ return name; } public String getNumber(){ return number; } public abstract double earnings(); public String toString(){ return "姓名:"+name+"\t社保号码"+number; } }
下面是月薪雇员 和 时薪雇员 对抽象父类的继承和实现
class SalariedEmployee extends Employee{ //继承了Employee 抽象类 private double weeklysalary; public SalariedEmployee(){ } public SalariedEmployee(String name,String number,double weeklysalary){ super(name,number); // name 和 number 都是继承父类 Employee 的属性 setWeeklysalary( weeklysalary); } public void setWeeklysalary(double weeklysalary){ if(weeklysalary>100){ this.weeklysalary=weeklysalary; }else{ this.weeklysalary=100; } } //下面是对抽象类中的 earnings 和 toString 方法的重写 public double earnings( ){ return weeklysalary; } public String toString(){ return super.toString()+"\t月薪:"+weeklysalary; } } class HourlyEmployee extends Employee{ //继承了Employee 抽象类 private int hours; private double wage; public HourlyEmployee(){ } public HourlyEmployee(String name,String number,int hours,double wage){ super(name,number); setHours(hours); this.wage=wage; } public void setHours( int hours ){ if(hours>48){ this.hours=hours; }else{ this.hours=48; } } public void setWage( double wage ){ if(wage>10){ this.wage=wage; }else{ this.wage=10; } } //下面是对抽象类中的 earnings 和 toString 方法的重写 public double earnings(){ if(hours>40){ return 40*wage+(hours-40)*wage*1.5; }else{ return 40*wage; } } public String toString(){ return super.toString()+"\t时新:"+earnings(); } }
测试类比较简单,大家可以自己试着写写,本人写的简单源代码也有上传。四个类全部在同一文件中,所以上述三个类都没有 public 权限。
相关文章推荐
- java基础要点(7)面向对象-抽象与接口
- java基础之接口与抽象
- Java基础-四要素之一《抽象》(接口)
- Java基础视频教程第07天_面向对象之继承、抽象、接口
- java基础--继承,抽象,接口
- 黑马程序员 07 Java基础教学 - 07 - 面向对象(3) 之 继承、抽象、接口
- 【黑马程序员】----java基础---继承、抽象、接口
- JAVA基础 —— 继承、抽象、接口
- 黑马程序员——Java基础--继承、抽象、接口
- 黑马程序员——Java基础---继承、抽象、接口
- java基础--继承、抽象、接口
- java基础之抽象和接口(下)
- 黑马程序员——Java基础:继承、final关键字、抽象、接口、多态
- java基础--继承下:抽象与接口
- java基础之继承、抽象、接口
- 黑马程序员_JAVA基础_继承,抽象和接口
- Java基础---继承、抽象、接口
- 黑马程序员——Java基础---继承、抽象、接口
- 黑马程序员-java基础 继承、抽象、接口
- 黑马程序员 ——Java基础之继承、抽象、接口、多态