因为a是个空类,输出的是随机的哈希码

类型转换

1

package Lian;

class Mammal{}
class Dog extends Mammal {}
class Cat extends Mammal{}

public class TestCast
{
	public static void main(String args[])
	{
		Mammal m;
		Dog d=new Dog();
		Cat c=new Cat();
		m=d;
//		d=m;
		d=(Dog)m;
		//d=c;
		//c=(Cat)m;

	}
}

此段没有报错

2

package Lian;

class Mammal{}
class Dog extends Mammal {}
class Cat extends Mammal{}

public class TestCast
{
	public static void main(String args[])
	{
		Mammal m;
		Dog d=new Dog();
		Cat c=new Cat();
		m=d;
		d=m;
		//d=(Dog)m;
		//d=c;
		//c=(Cat)m;

	}
}

这时候报错了,原因是=m; 这是将Mammal类型的m赋给Dog类型的变量d,这会导致编译错误。不能将父类引用直接赋值给子类对象。

3

package Lian;

class Mammal{}
class Dog extends Mammal {}
class Cat extends Mammal{}

public class TestCast
{
	public static void main(String args[])
	{
		Mammal m;
		Dog d=new Dog();
		Cat c=new Cat();
		m=d;
//		d=m;
		//d=(Dog)m;
		d=c;
		//c=(Cat)m;

	}
}

报错,d = c:这行代码试图将一个Cat对象引用赋值给Dog对象引用,这是不允许的,因为Cat和Dog是不同的类。

4

package Lian;

class Mammal{}
class Dog extends Mammal {}
class Cat extends Mammal{}

public class TestCast
{
	public static void main(String args[])
	{
		Mammal m;
		Dog d=new Dog();
		Cat c=new Cat();
		m=d;
//		d=m;
		//d=(Dog)m;
		//d=c;
		c=(Cat)m;

	}
}

此代码正确

posted on 2023-10-13 21:14  许七安gyg  阅读(5)  评论(0编辑  收藏  举报
$(document).ready(function() { // 禁止右键 $(document).bind("contextmenu", function(){return false;}); // 禁止选择 $(document).bind("selectstart", function(){return false;}); // 禁止Ctrl+C 和Ctrl+A $(document).keydown(function(event) { if ((event.ctrlKey&&event.which==67) || (event.ctrlKey&&event.which==86)) { //alert("对不起,版权所有,禁止复制"); return false; } }); });