Java多态(利用向上向下转型和反射机理)
- //基类:
- public class Polymorphism {
- public int book=6;
- public void base(){
- System.out.println("父类的普通方法");
- }
- public void test(){
- System.out.println("父类的被覆盖的方法");
- }
- }
- //子类
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- public class SubClass extends Polymorphism {
- public String book="子类的book";
- @Override
- public void test() {
- System.out.println("子类的覆盖父类的方法");
- }
- public void sub(){
- System.out.println("子类特有的独特方法");
- }
- public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
- Polymorphism bs=new Polymorphism();
- System.out.println(bs.book);
- bs.base();
- bs.test();
- SubClass sc=new SubClass();
- //通过引用变量来访问其包含的实例属性时,系统总是试图访问它编译时类所定义的属性,而不是它运行时类所定义的属性
- System.out.println(sc.book);
- sc.test();
- sc.base();
- sc.sub();
- Polymorphism py=new SubClass();
- System.out.println(py.book);
- py.base();
- py.test();
- //利用向下转型可以访问子类特有方法
- SubClass ss=(SubClass)py;
- ss.sub();
- //利用反射也可以
- Method[] cla=py.getClass().getMethods();
- int i=1;
- for(Method mth:cla){
- System.out.println(i+":");
- System.out.println(mth.toString()+":"+mth.getName());//省略
- if(mth.getName()=="sub"){
- System.out.println("*********");
- mth.invoke(py, null);//执行子类特有的方法体
- break;
- }
- i++;
- }
- }
- }
相关推荐
java多态、继承练习题,包含题目与答案,............................................................................................................
Java多态的讲解
C++和Java多态的区别
JAVA多态图文详解ppt,详细通过各种举例介绍JAVA多态的ppt
Java 多态中的类型转换
java多态的基础知识,你可能了解,但是如何使用?内附例子。究竟如何实现,帮你学习基础。
利用大量代码讲解java的多态,让你更容易理解和应用。
java的多态,是一个很重要的环节.但是要知道什么是多态!
主要介绍了简单了解Java多态向上转型相关原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java 的多态是java的重要的四大特性之一,多态又有多少人真正说的清楚呢?这里有最经典的例子,最生动的最鲜活的例子讲解,相信你一定能学会
JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型
【Java面试题】谈谈对Java多态的理解
java的编译时多态和运行时多态,保证一看就会
从虚拟机角度看Java多态->(重写override)的实现原理
java多态实现的课件,给那些需要的人 讲述了java多态的概念、分类、实现 综合案例讲解、总结多态的作用
用代码实例和注释向你讲述什么是多态,实例更容易理解
该资料,是一个多态的例子,充分的掌握多态,让多态得到很好的应用
java 个人对于多态理解和一些笔记。
java多态import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComplexListener implements MouseMotionListener,MouseListener,ActionListener{ JFrame f; JTextArea tf; JButton ...
RTRTRTRTRT 多态的泛型实现 急需积分...