`
andy99
  • 浏览: 7953 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

原来多态还可以这样

阅读更多
这种多态是用抽象类实现的

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		A a=new C();
		a.f();
	}

}
abstract class A {
	
	protected void  m1(){
		System.out.println("A m1()");
		m2();
	}
	protected abstract void  m2();
	public abstract void f();
}
class B extends A {

	@Override
	protected void m2() {
		System.out.println("B m2");
	}
	public void f(){
		System.out.println("B f");
		this.m1();
	}
	
}
class C extends A {

	@Override
	protected void m2() {
		System.out.println("C m2()");
	}
	
	public void f(){
		System.out.println("C f()");
		this.m1();
	}

}

学了java也有一年半了吧,也做过项目了,可是今天我无意中看到一位朋友这样用了多态,原来还有这样用,真实惭愧!!!哈哈

分享到:
评论

相关推荐

    labview创建多态VI

    数据类型选择器会将控制流导向正确的小巷(Goto Case Structure),这样你就可以在每个小巷中实现特定数据类型的处理逻辑。 5. **测试和调用多态VI** 完成多态VI的创建后,可以在其他程序中像普通VI一样调用它。...

    一个HW 多态题目 一个HW 多态题目

    例如,我们可以创建一个基类`Shape`,包含计算面积的`getArea()`虚函数,然后有`Circle`、`Rectangle`等派生类,它们各自重写`getArea()`,这样我们就可以用`Shape`的指针或引用处理各种形状,而无需关心具体的类型...

    java的编译时多态和运行时多态

    Java 编译时多态和运行时多态 Java 编译时多态和运行时多态是 Java 语言中两个重要的概念,它们都是多态性的实现方式,但它们在实现机制和应用场景上有所不同。 编译时多态 编译时多态是指在编译期根据参数列表的...

    多态的练习案例

    这样,编译器可以根据传入的实际参数来决定调用哪个方法。通过方法重载,我们可以创建具有相同名称但功能略有差异的方法,增强代码的可读性和易用性。 2. **方法重写(Overriding)**:在继承体系中,子类可以重写...

    Java 多态应用,掌握多态

    抽象类可以作为多态的基础,因为它们的子类可以覆盖它们的抽象方法。 6. ** finalize 方法**:虽然不是直接与多态相关的,但值得注意的是,Java中每个对象都有一个finalize()方法,这是垃圾收集器在回收对象前调用...

    多态代码实例

    多态是指一个接口可以有多种不同的表现形式或行为。在面向对象编程中,多态分为静态多态(编译时多态)和动态多态(运行时多态)。静态多态主要通过函数重载和运算符重载实现,而动态多态则主要依赖于虚函数。 虚...

    java多态的总结

    运行时多态则基于方法的重写(Overriding),子类可以重写父类的方法,当使用父类引用指向子类对象时,如果调用了被重写的方法,那么在运行时会根据实际的对象类型来执行子类的方法,这就是动态绑定。 理解多态的...

    java多态小结

    多态(Polymorphism)是面向对象编程的一个核心特性,指的是一个接口可以被多个类所实现或一个类可以被多个类所继承,进而表现出不同的行为。在Java中,多态主要体现在两个方面:**编译时类型与运行时类型的不同**...

    多态PPT文件!!!!

    - 继承:子类继承父类的属性和方法,子类可以看作是父类的一个扩展,这样父类引用可以指向子类对象,实现动态绑定。 - 虚函数:在基类中声明为虚函数的方法,可以在派生类中被重写,使得调用时根据实际的对象类型...

    Java中的多态.pptx.pptx

    多态的概念基于一个接口可以有多种不同的实现方式,增强了程序的多样性和适应性。 在Java中,多态主要通过三种方式实现: 1. 继承实现:子类继承父类后,可以覆盖父类中的方法。这样,当子类对象被当作父类对象...

    Animal(多态练习)

    通过基类指针或引用,我们可以调用`sound()`函数,而实际执行的代码会根据对象的具体类型来确定,这样就实现了多态的效果。 设计模式中的"工厂方法"(Factory Method)或"抽象工厂"(Abstract Factory)模式常常...

    oop 事件 委托 多态 继承

    子类不仅可以复用父类的代码,还可以添加自己的特性和功能。C#中的继承是单根继承,即一个子类只能有一个直接父类,但可以通过继承接口实现多重继承的效果。子类可以隐藏(使用`new`关键字)或重写(使用`override`...

    教学视频-继承&多态

    在编程领域,继承和多态是面向对象编程(OOP)中的两个核心概念,尤其是在Java这样的面向对象语言中。这两个概念极大地增强了代码的重用性和灵活性,使得软件设计更加高效和模块化。以下是对这两个概念的详细解释: ...

    C++继承与多态例子

    这样,我们就可以通过基类指针或引用调用子类的特定版本,即使在编译时不知道实际的对象类型。例如: ```cpp class Animal { public: virtual void makeSound() = 0; // 抽象函数,没有实现 }; class Dog : ...

    易语言的继承多态演示

    多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在易语言中,多态主要体现在方法重写和接口实现上。子类可以重写父类的方法,赋予它新的功能,这被称为方法覆盖。当调用这个方法时,会...

    java基础继承封装多态

    在 Java 中,可以通过方法重写和方法重载来实现多态。方法重写是子类继承父类的方法,并提供不同的实现。方法重载是提供多个同名方法,但是参数类型不同。 面向对象的设计 面向对象的设计是 Java 中的一种设计模式...

    Java多态的讲解

    Java多态的讲解

    hibernate的多态查询

    6. **JPA的多态查询**:如果使用JPA规范,可以使用`@Query`注解和JPQL(Java Persistence Query Language)来编写多态查询,通过`SELECT t FROM ParentType t WHERE t.class IN :classes`这样的语句来实现。...

    基于C++的多态模式编写类的代码多态.docx

    多态性使得代码更加灵活,可扩展性更强,可以减少代码重复,并提高代码的复用性。在这个文档中,通过两个经典案例展示了如何在C++中实现多态。 首先,我们要理解什么是虚函数(Virtual Function)。在C++中,虚函数...

Global site tag (gtag.js) - Google Analytics