一、抽象类
1.什么是抽象类:使用abstract定义的类就是抽象类.
注意:抽象类中可以出现抽象方法.
2.定义抽象类
public abstract class Usb {
定义抽象方法
}
注意:a.抽象类中可以出现抽象方法
b.抽象类不能被实例化,只能被继承使用
c.当子类继承抽象类时,必需实现抽象方法(重写)
d.使用抽象类
抽象类 对象名=new 实现继承抽象类的类();
3.什么是抽象方法:没有方法体且用abstract定义的方法为抽象方法
示例:
public abstract void method();
二、final关键字(最终)
1.使用final修饰的类为终态类,不能被继承
public final class Parent {}
2.使用final修饰的方法为最终方法,不能被重写
public final void method() {}
3.用final修饰的属性为常量,必需初始值,不能被修改
public final float pi=3.14f;
上机练习一:使用抽象类模拟usb工作原理
1.usb类 抽象方法work
2.Mouse类 实现方法
3.KeyBoard类
4.发生重写
三、多态(多种形态)
1.现实生活中的多态:
同一个事物,在不同的条件下,产生的结果不同
2.程序中的多态
同一个引用类型(父类引用),使用不同的实例(子类对象)而执行不同的操作;
父类引用=new 任何子类();
3.实现多态的思路:
3.1定义父类
3.2定义子类继承父类,重写父类的方法
3.3发生多态
父类引用=new 任何子类();
四、父类与子类间的转换
1.向上转型(自动转):指子类对象向父类转型
Person person=new Student(); //向上转型:方法重写
2.向下转型(强制转换):将父类强制转化为子类对象
注意:父类引用不能访问子类的成员(向下转型),重写方法除外
3.使用instanceof关键字判断某对象是不是该类的对象
对象 instanceof 类名 //是返回true,反之false
示例:
if(p instanceof Student) {
Student stu=(Student)p;
System.out.println("学号是:"+stu.getXh());
}