java上转型的多态
2016-06-04 21:53
519 查看
我也不知道自己理解的怎么样,就这部分的多态常用。看视频理解的。、
class Fu
{
int num=10;
void show()
{
System.out.println("Fu show run...");
}
static void run()
{
System.out.println("Fu static run...");
}
}
class Zi extends Fu
{
int num=100;
void method()
{
System.out.println("Zi method run...");
}
void show()
{
System.out.println("Zi show run...");
}
static void run()
{
System.out.println("Zi static run...");
}
}
class DuotaiDemoTest
{
public static void main(string[] arg)
{
Fu f=new Zi();//子类对象向上转型
f.num;//运行后:Fu中的10
//f.method();//编译失败,父类中没有method方法
f.show();//运行后:Zi show run。。。
f.run();//运行后:Fu static run...
}
}
总结就是:
Fu f=new Zi();
成员方法:
编译时:要看引用所属的类(个人理解是父类)中有没有这个成员方法,有,则编译通过;没有,则不通过;
运行时:运行的是引用所指的对象中的成员方法(子类重写的那个方法);
成员变量:
编译时:要看引用所属的类中必须有这个成员变量,否则编译不通过;
运行时:仍然使用的引用所属类中的成员变量。
静态方法:
编译时:看引用所属中的功能,有,则编译通过;否则失败。
运行时:运行引用所属类中的功能。
class Fu
{
int num=10;
void show()
{
System.out.println("Fu show run...");
}
static void run()
{
System.out.println("Fu static run...");
}
}
class Zi extends Fu
{
int num=100;
void method()
{
System.out.println("Zi method run...");
}
void show()
{
System.out.println("Zi show run...");
}
static void run()
{
System.out.println("Zi static run...");
}
}
class DuotaiDemoTest
{
public static void main(string[] arg)
{
Fu f=new Zi();//子类对象向上转型
f.num;//运行后:Fu中的10
//f.method();//编译失败,父类中没有method方法
f.show();//运行后:Zi show run。。。
f.run();//运行后:Fu static run...
}
}
总结就是:
Fu f=new Zi();
成员方法:
编译时:要看引用所属的类(个人理解是父类)中有没有这个成员方法,有,则编译通过;没有,则不通过;
运行时:运行的是引用所指的对象中的成员方法(子类重写的那个方法);
成员变量:
编译时:要看引用所属的类中必须有这个成员变量,否则编译不通过;
运行时:仍然使用的引用所属类中的成员变量。
静态方法:
编译时:看引用所属中的功能,有,则编译通过;否则失败。
运行时:运行引用所属类中的功能。
相关文章推荐
- 1、struts2的入门
- Spring mvc 原理浅析
- Spring事务传播机制
- MyEclipse/Eclipse 乱码 解决方案总结(UTF8 -- GBK)
- java 线程中join的使用
- java.util.Dictionary源码分析
- SimpleDateFormat
- java 中wait和notify 线程等待和线程唤醒的使用方式 需要借助synchronized
- SpringMVC整合Shiro
- leetcode-Java-242. Valid Anagram
- java 高效序列化 Externalizable接口
- spring-boot-framework 如何自动将对象返回成json格式
- Java趣味编程(二)
- Java工具之Myeclipse程序调试
- springmvc框架精讲及配置——Springmvc总结(一)
- Activiti工作流学习(三)Activiti工作流与spring集成
- Java趣味编程(一)
- JAVA-WEB开发第三讲[2016-06-04]JAVA环境变量的设置
- 关于shiro+springMVC整合使用的问题
- java如何提取url里的域名