一、抽象类
1、定义
当多个类中出现相同功能,但是功能主体是不同的,这是可以进行向上抽取的,只抽取功能的定义部分,使用抽象类实现
抽象类的存在就是为了被继承
2.使用
abstract
3.抽象类的特点
a.使用关键字abstract修饰的类
b.抽象类不可以使用new关键字进行创建对象
c.抽象类中既可以写抽象方法,也可以写普通方法
d.如果子类只实现了抽象类中的部分抽象方法,那么这个时候子类仍然是一个抽象类
4.抽象方法的特点:
a.抽象方法必须存在于抽象类中
b.使用abstract修饰的方法
c.只有声明,没有实现
5.抽象类和一般类的区别
a.抽象类是在一般类的基础上,使用abstract修饰的类
b.抽象类中既可以有抽象方法,也可以有普通方法,普通类中只能有普通方法
c.抽象类不能用于实例化对象
二、接口
1.概念
初期理解:可以认为接口是一种特殊的抽象类,当抽象类中的方法全部是抽象方法的时候,我们就可以使用接口来表示
接口是抽象方法的集合,
2.使用
interface
语法:访问权限修饰符 interface 接口名称
{
}
3.接口的特点
a.接口不能实例化对象
b.接口中不能写成员变量
接口中成员变量的修饰符是固定的,public static final,在接口中出现的变量统统认为是常量
c.接口中默认所有的方法都是抽象方法
接口中方法的修饰符也是固定的,public abstract,接口中默认所有的方法都是抽象方法
4.接口的实现和类之间的关系
一个类如果要实现另外一个类中的方法的话,使用继承实现
一个类如果要实现一个接口中的方法的话,则需要实现这个接口
语法:
访问权限修饰符 class 子类类名 implements 接口名 {
}
其中,把实现了这个接口的类称为接口的实现类
注意:
a.子类必须实现接口中的全部的抽象方法,子类才可以实例化,否则,子类仍然是一个抽象类
b.一个类是可以实现多个接口,需要把实现的接口中的方法全部实现了
c.实现接口和类的继承之间没有关系,一个类在实现接口的同时也可以继承
d.接口之间是可以进行继承的,并且是多继承
总结
接口其实是对外暴露的规则
接口可以实现程序功能的扩展
接口可以用来多实现
接口之间是可以继承的,并且是多继承的关系
一个类在继承的同时可以实现接口
三、多态
一种事物的多种体现形式
Java中的体现形式:
1>父类的引用指向子类的对象
2>接口的引用指向实现类的对象
四、对象转型
1.对象的向上转型
由子类类型转换为父类类型
由实现类类型转换为接口类型
对象向上转型之后就不能再访问子类中特有的方法和属性
对象向上转型之后就不能再访问实现类中特有的方法,
2.对象的向下转型
由父类类型转换为子类类型:强制类型转换
3.instanceof
语法:对象 instanceof 对象匹配的类型
作用:判断这个对象是不是指定的类型
五。工厂设计模式
多态的应用
当需要一个对象的时候,并不是直接通过new的方式实例化对象,而是通过工厂类的工厂方法直接去获取