一、向上造型(下)
1. 超类型的引用指向派生类的对象
public class Test{
public static void main(String[] args) {
//超类型(父类) 引用 指向 对象(派生类)子类
Aoo o = new Boo();
}
}
class Aoo{} //超类
class Boo extends Aoo{} //派生类
2. 能点出来什么,看引用的类型
public class Test{
public static void main(String[] args) {
//超类型(父类) 引用 指向 对象(派生类)子类
Aoo o = new Boo();
o.sayHi(); // Aoo的sayHi方法
// o.sayHello(); // 报错,引用只能调用Aoo的方法
}
}
class Aoo{ // 超类
void sayHi() {
System.out.println("Aoo的sayHi方法");
}
}
class Boo extends Aoo{ // 派生类
void sayHello() {
System.out.println("Boo的sayHello方法");
}
}
3. 如果父类的方法被子类所重写,调用的就是子类的方法(看对象的类型)
如不了解 方法的重写,请先参考学习下面重写的知识点
public class Test{
public static void main(String[] args) {
//超类型(父类) 引用 指向 对象(派生类)子类
Aoo o = new Boo();
// 由于sayHi方法被子类重写,实际调用的就是子类的方法
o.sayHi(); // Boo的重写后的sayHi方法
// o.sayHello(); // 报错,引用只能调用Aoo的方法
}
}
class Aoo{ // 超类
void sayHi() {
System.out.println("Aoo的sayHi方法");
}
}
class Boo extends Aoo{ // 派生类
// 方法的重写
void sayHi() {
System.out.println("Boo的重写后的sayHi方法");
}
void sayHello() {
System.out.println("Boo的sayHello方法");
}
}
二、方法的重写(Override)
1. 定义
重写(覆盖):父子类中,子类方法与父类方法的名称相同,参数列表也相同我们称之为方法的重写 方法的签名 = 方法名称 + 参数列表 我们又称:父子类中,子类与父类方法的签名相同的方法叫方法的重写 当父类提供的方法不能满足你的业务需求时,需要重写
三、访问控制修饰符
类的访问控制权限只能是 public 和 默认的
类中成员的访问权限四种都可以使用
四、static 关键字
static 是Java中的一个关键字,表示静态的意思。表示全局唯一的,一经改变,都进行改变
1. staitc 使用场景
1.1 修饰变量:静态变量
静态变量,又称类变量,由static修饰属于类,存储的方法区中,只有一份常常通过类名点的方式来调用何时用:所有对象所共享的数据(图片、音频、视频)static不能修饰局部变量
pu