*****************************************************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
/*
多态中静态成员变量的特点:
无论编译还是运行,都看左边(引用型变量所属的类)。
*/
}
}
运行结果: