初学java 一个简单的问题

来源:百度知道 编辑:UC知道 时间:2024/05/07 02:25:05
郁闷了书上讲的很是不清楚,。
这些代码
public static void main(String args[])
{
Shape fobj;
Square sqobj=new Square(10,20);
Triangle trobj=new Triangle(12,8);
fojb=sqobj;
System.out.println(fobj.area());
fobj=trobj;
System.out.println(fobj.area());
}

只给出了有问题的那些代码 。 这里Shape是父类也是抽像类 Square 和Triangle都是它的子类

Square 和Triangle都重写了shape里的area方法
这两句代码我不懂是什么意思
fojb=sqobj;
fobj=trobj;
谁帮解释一下,谢谢了!
郁闷了 书上连啥是引用都没讲。,这个来帮忙讲讲吧!十分感谢!明天换书去!

引用类似指针,只是说法不同而已(个人见解)

Shape fobj; //定义一个Shape类型的引用变量,初始化为null
Square sqobj=new Square(10,20); //定义一个Square类型的引用变量,并根据构造函数进行初始化
Triangle trobj=new Triangle(12,8); //类似上面
fobj=sqobj; //将sqobj的引用变量赋值给fobj,注意:你的变量名写错了^^
fobj=trobj; //将trobj的引用变量赋值给fobj,使两个引用变量指向同一堆内存空间,也就是指向同一对象

直接把子类对象赋值给父类对象
使父类对象也具有了子类对象的属性
通俗的说就是把参数复制给父类
使父类也就有使用这个参数的方法