你好,请问下牛人:Java中用父类声明和用子类声明对象有什么不同嘛?

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:16:34
如题。
super A=new son();

son A=new son();
有区别嘛??
如果是静态方法。。。。
但调用的是静态方法的话。。。
静态在内存中不是只有一份嘛??

通过引用变量调用方法和成员变量时是不同的
如果是静态方法或者是成员变量(无论是静态还是非静态),调用的是实例类型的方法和属性,即父类
但调用的是静态方法的话 那么调用的是引用类型的方法,即子类
主要涉及方法的重写的问题
要是静态方法的话 只是隐藏父类的静态方法,并不是消失了....

父类引用指向子类变量

给你一个小的程序 计算正方形和长方形的周长 你看看思路:

class FatherLei
{
/**变量存储正方形的边长*/
int length;
/**父类的构造方法*/
FatherLei(int len)
{

length=len;
}
void getPerimeter()
{
System.out.println ("正方形的周长是"+(4*length));
}
}

/**重写父类的 getPerimeter方法 */

class SonLei extends FatherLei
{
/**变量存储长方形的宽*/
int width;
/**父类的构造方法*/
SonLei(int len,int wid)
{

//调用父类的构造方法
surper(len);
width=wid;
}
//计算长方形的周长
void getPerimeter()
{
System.out.println ("长方形的周长是"+(2*(length+width)));
}
}

/**测试类*/
public class test
{
test()
{}

public static void main(String [] args)