java study 08day--多态中成员的特点
2012-09-07 10:38
190 查看
class Fu
{
int num = 5;
void method1()
{
System.out.println("fu method_1");
}
void method2()
{
System.out.println("fu method_2");
}
static void method4()
{
System.out.println("fu method_4");
}
}
class Zi extends Fu
{
int num = 8;
void method1()
{
System.out.println("zi method_1");
}
void method3()
{
System.out.println("zi method_3");
}
static void method4()
{
System.out.println("zi method_4");
}
}
class DuoTaiDemo4
{
public static void main(String[] args)
{
Zi z = new Zi();
z.method1();
z.method2();
z.method3();
}
打印的结果:
zi method_1
fu method_2
zi method_3
若更改为:
public static void main(String[] args)
{
Fu f = new Zi();
f.method1();
f.method2();
f.method3();
}
结果为编译错误!其中的method3找不到。
分析:在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
2、面试题目:
public static void main(String[] args)
{
Fu f = new Zi();
System.out.println(f.num);
Zi z = new Zi();
System.out.println(z.num);
}
打印出的结果为5,8
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。
3、在多态中,静态成员函数,变量的特点:
无论编译和运行,都参考做左边。
public static void main(String[] args)
{
Fu f = new Zi();
f.method4();
Zi z=new Zi();
}
打印出的结果:fu-method4
zi-method4
{
int num = 5;
void method1()
{
System.out.println("fu method_1");
}
void method2()
{
System.out.println("fu method_2");
}
static void method4()
{
System.out.println("fu method_4");
}
}
class Zi extends Fu
{
int num = 8;
void method1()
{
System.out.println("zi method_1");
}
void method3()
{
System.out.println("zi method_3");
}
static void method4()
{
System.out.println("zi method_4");
}
}
class DuoTaiDemo4
{
public static void main(String[] args)
{
Zi z = new Zi();
z.method1();
z.method2();
z.method3();
}
打印的结果:
zi method_1
fu method_2
zi method_3
若更改为:
public static void main(String[] args)
{
Fu f = new Zi();
f.method1();
f.method2();
f.method3();
}
结果为编译错误!其中的method3找不到。
分析:在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
2、面试题目:
public static void main(String[] args)
{
Fu f = new Zi();
System.out.println(f.num);
Zi z = new Zi();
System.out.println(z.num);
}
打印出的结果为5,8
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。
3、在多态中,静态成员函数,变量的特点:
无论编译和运行,都参考做左边。
public static void main(String[] args)
{
Fu f = new Zi();
f.method4();
Zi z=new Zi();
}
打印出的结果:fu-method4
zi-method4
相关文章推荐
- JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例
- 【Java就业培训教程】——多态成员特点
- 图解Java多态内存分配以及多态中成员方法的特点
- JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例
- 黑马程序员--03.Java面向对象--08.【多态中成员的特点】
- JAVA学习日志(8-2-多态成员特点与实例)
- java study 08day--多态
- java学习--多态及多态的成员特点
- JAVA多态机制中,成员调用的特点
- JAVA面试题---多态成员变量的特点
- 图解Java多态内存分配以及多态中成员方法的特点
- 图解Java多态内存分配以及多态中成员方法的特点
- 图解Java多态内存分配以及多态中成员方法的特点
- java 基础 面向对象(多态中的成员访问特点之静态成员成员方法)
- 图解Java多态内存分配以及多态中成员方法的特点
- JAVA 多态中的成员访问特点
- JAVA 多态中成员的特点
- java面向对象-多态中成员函数成员变量的特点
- Java多态中成员的特点
- java基础案例:多态的成员特点