您的位置:首页 > 职场人生

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

2014-01-10 00:00 375 查看
 

----------------------
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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多态
相关文章推荐