10.19(day10)
1. 回顾
(1)内部类:在一个类当中又定义的类被称为内部类
成员内部类
方法内部类:在一个方法当中又定义的类被称为方法内部类
匿名内部类 :直接去new接口或者是new抽象类
(2)抽象类: 一类事物无法用具体的语言进行表述这样的类被称为抽象类
Public abstract class 类名{
属性
成员方法
抽象方法
构造方法
}
(3)抽象方法: 无法用语言进行具体的表述的时候这样的方法被称为愁方法
Public abstract 返回数据类型 方法名(参数数据类型 参数名,。。);
如果一个类当中有抽象方法那么这个类一定是抽象类,
如果一个类是抽象类那个这个类中不一定有抽象方法
抽象类的作用是给子类来进行继承让子类具体的实现
(4)接口: 接口是一种规范
Public interface 接口名{
常量
抽象方法
}
(5)接口是给类来进行实现的
Public class 类名 implements 接口名,接口名2,接口{
}
Public class 接口名 extends 父接口名,父接口2,,,{
}
(6)接口和抽象类又什么区别?
1. 修饰符不能 抽象类使用的abstract class进行修饰 接口是interface]
2. 抽象类中有常量也有变量,接口只有常量
3. 抽象类中有成员方法,而接口不能有成员方法
4. 抽象类中可以有构造函数,但是不能创建对象,接口当中没有构造函数
5. 抽象类是给子类进行继承的但是子类只能继承一个类 ,接口是给子类来实现子类可以同时实现多个接口
6. 接口可以继承接口并且可以继承多个接口
This,super不能和static同时应用
(7)案例:某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,
属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪
HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数
SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率
BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。
写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个方法,打印出某月每个员工的工资数额。
注意:要求把每个类都做成完全封装,不允许非私有化属性。
2. 面向对象特征:
封装 private
继承 extends
多态:顾明思议就是多种形态的意思,例如 人 小孩 中年 老年
狗 : 二哈 小狗 大狗
水: 热水,冰水 蒸汽
形状: 三角形 四边形 五边形
只要使用到了 继承 向上转型 方法的重写