栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA自学课程笔记3.1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA自学课程笔记3.1

2021年2月20日16点16分
JAVA自学课程笔记3.1

	Test1.java:
		class A{
		    public void f(){
			System.out.println("AAA");
		    }
		}

		class B extends A{
		    public void f(){
			System.out.println("BBB");
		    }
		    public void g(){
			System.out.println("CCC");
		    }
		}

		public class Test1{
		    public static void main(String[] args){
			B bb = new B();
			A aa = new A();
			aa = bb;
			aa.f();
			B bb2 = (B)aa;
			bb2.f();
		    }
		}
	//运行结果:
		BBB
		BBB
	
	Test2.java:
		class A{
		    public void f(){
			System.out.println("AAA");
		    }
		}

		class B extends A{
		    public void f(){
			System.out.println("BBB");
		    }
		    public void g(){
			System.out.println("CCC");
		    }
		}

		public class Test2{
		    public static void main(String[] args){
			B bb = new B();
			A aa = new A();
			//aa = bb;
			aa.f();
			bb = (B)aa;
			bb.g();
		    }
		}
	//运行结果:
		AAA
		Exception in thread "main" java.lang.ClassCastException: class A cannot be cast to class B (A and B are in unnamed module of loader 'app')
			at test1.main(test1.java:23)
		
	Test3.java:
		class A{
		    public void f(){
			System.out.println("AAA");
		    }
		}

		class B extends A{
		    public void f(){
			System.out.println("BBB");
		    }
		    public void g(){
			System.out.println("CCC");
		    }
		}

		public class Test3{
		    public static void main(String[] args){
			B bb = new B();
			A aa = new A();
			aa = bb;
			aa.f();
			bb = (B)aa;
			bb.f();
		    }
		}
	//运行结果:
		BBB
		BBB

	
	重写equal方法,通过判断元素的内容是否相同来返回true和false(JAVA自学课程笔记6):
	Test4:
		class A{
		    public int i;

		    public A(int i){
			this.i = i;
		    }

		    public boolean equals(Object obj){
			if(this.i == obj.i)
			    return true;
			else
			    return false;
		    }
		}

		public class Test4{
		    public static void main(String[] args){
			A aa1 = new A(2);
			A aa2 = new A(2);
			System.out.println(aa1.equals(aa2));
		    }
		}
	//输出结果:
		编译错误:找不到符号obj.i
		原因:父类指向子类之后,无法访问子类所特有的成员。
	
	Test5:
		class A{
			public int i;

			public A(int i){
				this.i = i;
			}

			public boolean equals(Object obj){
				A aa = (A)obj;		//obj是一切类的父类,当obj指向一个引用equal的子类时(即equal赋值				给obj),父类obj可以通过强制转换被一个子类指向(即赋值给一局部变				量子类)。总而言之,就是父类已经指向子类了,才可以强制转换。
							
							//aa是一个A类的对象,特有i,可以直接使用,可以用来和当前类this的i对比。
				if(this.i == aa.i)
					return true;
				else
					return false;
			}
		}

		public class Test5{
			public static void main(String[] args){
				A aa1 = new A(2);
				A aa2 = new A(2);
				System.out.println(aa1.equals(aa2));
			}
		}
	//输出结果:
		true

	
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号