抽象类
抽象类与抽象方法的使用
- 抽象类中可以没有抽象方法,但包含了抽象方法的类必须定义为抽象类;
- 如果子类没有实现父类的所有方法,子类必须被定义为抽象类;
- 没有抽象构造方法,也没有抽象静态方法;
- 抽象类中可以有非抽象的构造方法,创建子类的实例时可以调用。
抽象类和普通类的区别
- 抽象类使用abstract关键字修饰;
- 抽象类不能实例化,但可以创建一个引用变量,其类型时一个抽象类,指向非抽象的子类实例;普通类可以实例化;
- 抽象类中可以有抽象方法,也可以没有抽象方法;普通类中一定不能含有抽象方法。
Java多态性
多态
同一个引用类型,使用不同的实例而执行不同的操作
(同一个变量,引用不同的对象,执行不同的方法)
向上转型
向上转型就是子类对象赋值给父类类型的变量。父类变量调用的方法,如果该方法是子类重写过的父类方法,调用的就是子类重写父类的方法。如果该方法子类没有重写父类的方法,调用的是父类的方法。
向下转型
将一个指向子类对象的父类引用赋给一个子类使用的引用,即:父类类型转换为子类类型。需要强制类型转换。
将父类当作方法的参数
例如:

将父类当作方法的返回值
例如:

201

被折叠的 条评论
为什么被折叠?



