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多态、继承练习题,包含题目与答案,............................................................................................................
在Java中,多态主要通过两种方式体现:**向上转型**和**方法重写**。 #### 二、向上类型转换(upcasting) 向上类型转换是指将子类的对象赋值给父类的引用,这一过程是自动进行的,无需显式转换。例如,在上述例子中...
理解多态的关键在于“向上转型”和“向下转型”。向上转型是指将子类对象赋值给父类引用,这是自动进行的,无须额外操作。例如: ```java Animal animal = new Cat(); // 向上转型,猫是动物的一种 animal.speak(); ...
本篇将深入探讨Java多态中的类型转换,包括向上转型(Upcasting)和向下转型(Downcasting),以及相关的注意事项。 1. **向上转型(Upcasting)** 向上转型是指将子类的对象引用赋值给父类的引用。在Java中,这是...
JAVA多态图文详解ppt,详细通过各种举例介绍JAVA多态的ppt
### C++和Java多态的区别 #### 一、概述 多态是面向对象编程语言中的一个核心特性,它允许程序员能够使用基类的指针或引用指向派生类的对象,并在运行时根据对象的实际类型来选择合适的方法进行调用。这一特性增强...
4. **向上转型(Upcasting)与向下转型(Downcasting)**:向上转型是指将子类对象赋值给父类引用,这是隐式的,编译器允许这么做,因为子类是父类的特例。而向下转型则是将父类引用转换为子类对象,需要显式进行,...
Java 多态向上转型相关原理 多态是面向对象的第三大特征,它有三个优点:改善代码的组织结构和可读性、能够创建可扩展的程序、消除类型之间的耦合关系。多态的概念主要体现在向上转型中,Java 允许把子类对象赋值给...
Java 多态详解 Java 多态是 Java 编程语言中的一种基本概念,它允许开发者定义一个接口,并且可以通过不同的类来实现该接口。多态性是 Java 面向对象编程的核心机制之一,它使得程序更加灵活、可维护和可扩展。 ...
多态在Java中有着深远的影响,它提高了代码的可重用性、灵活性和可扩展性。本篇将通过一个经典例子深入解析多态的含义,并通过实际代码展示其应用。 首先,我们要理解多态的定义。在Java中,多态性(Polymorphism)...
JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型
Java多态理解 java中的多态性是面向对象编程的精髓所在。多态性是指父类引用指向子类对象,例如父类...java中的多态性是通过向上转型和动态链接来实现的。多态性可以降低程序的耦合性,提高程序的灵活性和可维护性。
【Java面试题】谈谈对Java多态的理解
在Java中,多态主要体现在两个方面:**编译时类型与运行时类型的不同**以及**对象的向上转型和向下转型**。 #### 编译时类型与运行时类型 在Java中,每个引用变量都有两种类型:**编译时类型**和**运行时类型**。...
在Java中,多态主要体现在两个方面:方法重载(Overloading)和方法重写(Overriding)。方法重载是指在一个类中可以有多个同名方法,但参数列表不同;方法重写则是在子类中重新定义父类已有的非私有方法,以提供...
在这个“java多态实验”中,我们可以看到一系列小代码实例,这些实例旨在帮助理解和应用多态特性。下面我们将深入探讨多态的概念、实现方式以及它在实际开发中的应用。 1. 多态性定义: 多态(Polymorphism)源自...
Java多态是面向对象编程中的一个核心特性,它允许我们以一种统一的方式处理不同类型的对象。在Java中,多态性主要通过继承、接口和方法...了解这些底层原理有助于我们更好地设计和优化Java程序,以利用多态带来的好处。
Java 编译时多态和运行时多态 Java 编译时多态和运行时多态是 Java 语言中两个重要的概念,它们都是多态性的实现方式,但它们在实现机制和应用场景上有所不同。 编译时多态 编译时多态是指在编译期根据参数列表的...
在给定的“java多态作业”中,可以看到多态性的应用主要体现在实现多个接口(MouseMotionListener、MouseListener和ActionListener),这些接口代表了不同的事件监听器,每个接口都定义了一系列方法来处理特定类型的...