黑马程序员_10_成员变量_成员方法_静态成员方法_在多态情况下的特点

 
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
 


*****************************************************11111111111111*********************************************************
class Person{
		public void print1(){
				System.out.println("Person print_1111");	
		}	
		public void print2(){
				System.out.println("Person print_2222");	
		}	
}
class Student extends Person{
		public void print1(){
				System.out.println("SSSsss print_1111");	
		}	
		public void print3(){
				System.out.println("SSSs print_3333");	
		}		
}
public class Polymorphic080501{
		public static void main(String[] args){
				
				Student s=new Student();
				s.print1();	 //输出结果是:SSSsss print_1111
				s.print2();  //输出结果是:Person print_2222
				s.print3();  //输出结果是:SSSs print_3333
		}	
}

运行结果:



*****************************************************22222222222222 *********************************************************
class Person{
		public void print1(){
				System.out.println("Person print_1111");	
		}	
		public void print2(){
				System.out.println("Person print_2222");	
		}	
}
class Student extends Person{
		public void print1(){
				System.out.println("SSSsss print_1111");	
		}	
		public void print3(){
				System.out.println("SSSs print_3333");	
		}		
}
public class Polymorphic080502{
		public static void main(String[] args){
				
				Person p=new Student();
				p.print1();
				p.print2();
				p.print3(); //编译时报错
				
				/*
				多态中成员函数的特点:
				1、在编译时期:检查引用型变量(例如:p)所属类(例如:Person)中是否调用的函数,
				如果有,编译通过,如果没有,编译失败。
				2、在运行时期:检查对象所属类是否有调用的方法。
				简单总结:成员函数在多态中,编译时看左边,运行时看右边。
				*/
			
		}	
}

运行结果:


*****************************************************33333333333333 *********************************************************
class Person{
	  int num=5;
		public void print1(){
				System.out.println("Person print_1111");	
		}	
		public void print2(){
				System.out.println("Person print_2222");	
		}	
}
class Student extends Person{
	  int num=8;
		public void print1(){
				System.out.println("SSSsss print_1111");	
		}	
		public void print3(){
				System.out.println("SSSs print_3333");	
		}		
}
public class Polymorphic080503{
		public static void main(String[] args){
				
				Person p=new Student();
				System.out.println("p.num="+p.num); //p.num=5
				
				Student s=new Student();
				System.out.println("s.num="+s.num);  //s.num=8
				/*
				多态中成员变量的特点:
				无论编译还是运行,都看左边(引用型变量所属的类)。
				*/
			
		}	
}

运行结果:


*****************************************************44444444444444 *********************************************************

class Person{
	  int num=5;
		public void print1(){
				System.out.println("Person print_1111");	
		}	
		public void print2(){
				System.out.println("Person print_2222");	
		}
		public static void print4(){
				System.out.println("Person print_44");	
		}	
}
class Student extends Person{
	  int num=8;
		public void print1(){
				System.out.println("SSSsss print_1111");	
		}	
		public void print3(){
				System.out.println("SSSs print_3333");	
		}	
		public static void print4(){
				System.out.println("ssss print_4444");	
		}	
}
public class Polymorphic080504{
		public static void main(String[] args){
				
				Person p=new Student();
				p.print4(); //Person print_44
				
				Student s=new Student();
				s.print4();  //ssss print_4444
				/*
				多态中静态成员变量的特点:
				无论编译还是运行,都看左边(引用型变量所属的类)。
				*/
			
		}	
}

运行结果:





---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值