实际我们new子类的过程是,先new一个父类,再new一个子类,只是我们不需要这么做,java内部这么操作。
就以上知识点,我们用一个例子来理解:
class Father{
Father(){
System.out.println("父类");
}
void Fat(){
System.out.println("!");
}
}
class Son extends Father{
Son(){
System.out.println("子类");
Fat();
}
}
class p {
public static void main(String[] args) {
Father Fa=new Son(); //向上转型
}
}
思考:会输出什么?
D:\Java\bin\java.exe "-javaagent:D:\Jetrains\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=62998:D:\Jetrains\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\BabyLu\Desktop\学习\java\untitled\out\production\untitled p
父类
子类
!
Process finished with exit code 0
如果代码改成这样,又会输出什么?
class Father{
Father()