java中如何创建一个类的对象与另一个类的引用变量?

ada*_*ava -4 java oop overriding

这很好用

class A 
{
    public void f1(int x) {
        System.out.println("F1 of A");
    }   
}

class B extends A
{
    public void f1(int x) {
        System.out.println("F1 of B");
    }
}

public class Overriding {
    public static void main (String[] args) {
        A obj = new B(); //No Error
        obj.f1(7);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误

class A
{
    public void f1(int x) {
        System.out.println("F1 of A");
    }
}

class B extends A
{
    public void f1(int x) {
        System.out.println("F1 of B");
    }
}

public class Overriding {

    public static void main (String[] args) {
        B obj1 = new A(); // error: incompatible types: A cannot be converted to B
        obj1.f1(7);
    }
}
Run Code Online (Sandbox Code Playgroud)

java中创建一个类的对象并用其他类的引用变量引用它是什么概念?

小智 5

当你创建一个继承另一个类的字段和方法的新类时,你创建的对象需要是父类的类型。

如果您有一个班级Shape和另一个班级extends,请说Circle

您可以创建Shapeof 类型Circle,但不能创建Circleof 类型ShapeShape不保证具有半径、周长、直径等函数和字段...

Oracle 有一些关于继承的非常有用的教程,我建议您阅读:https ://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html