`
areha001
  • 浏览: 12871 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Java同时继承同名方法的问题

阅读更多
接口Alarm 中有 open()方法
Door里也有open()方法

要将两个open()方法分开,转成Alarm时调用的open()和作为Door的子类的open()两个方法不同。

解决方案: 创建一个内部类

/**
 * 外部类 继承Door
 * */
public class AlarmDoor extends Door{

	public int i = 0 ;
	
	/**
	 * 转成Alarm时 构建内部类
	 * */
	public Alarm getAlarm()
	{
		return new MyDoor(this);
	}
	
	/**
	 * 转回AlarmDoor
	 * */
	public static AlarmDoor getAlarmDoor(Alarm alarm)
	{
		return ((MyDoor)(alarm)).getAlarmDoor();
	}
	
	/**
	 * 重写Door类open()方法
	 * */
	public void open()
	{
		System.out.println("Opening");
	}
	
	public void gogogo()
	{
		System.out.println("going");
	}
	
	public void count()
	{
		i++;
		System.out.println(i);
	}
	
         /** 
          * 内部类实现接口 
          * */  
	private class MyDoor implements Alarm{
		
		private AlarmDoor ad;

		/**
		 * 重写Alarm接口open()方法
		 * */
		public void open()
		{
			System.out.println("Alarming");
		}
		
		public MyDoor(AlarmDoor d)
		{
			this.ad = d;
		}
		
		public AlarmDoor getAlarmDoor()
		{
			return ad;
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		AlarmDoor ad = new AlarmDoor();
		ad.open();
		ad.gogogo();
		ad.count();
		
		//转成 Alarm接口
		Alarm alarm = ad.getAlarm();
		alarm.open();
		
		
		//转回 AlarmDoor
		ad = AlarmDoor.getAlarmDoor(alarm);
		
		ad.count();	
	}
}
0
0
分享到:
评论

相关推荐

    Java方法继承、方法重载、方法覆盖总结

    ### Java方法继承、方法重载、方法覆盖总结 在Java编程语言中,方法继承、方法重载、方法覆盖是三个非常重要的概念。它们之间既有关联又有区别,掌握这些概念对于深入理解面向对象编程有着至关重要的作用。 #### ...

    Java 实现继承实例代码

    这个例子展示了Java继承的核心概念,包括: 1. 使用`extends`关键字创建子类。 2. 访问和覆盖父类的方法。 3. 添加子类特有的方法。 4. 多态性的应用。 通过学习这个实例,开发者能够更好地理解和运用Java的继承...

    Java 继承和方法重写

    Java 继承是面向对象编程中的一个核心概念,它允许一个类...通过深入理解并灵活运用 Java 的继承和方法重写,可以编写出更具可维护性和扩展性的代码。在实际开发中,合理地利用这些特性,能有效提升软件的质量和效率。

    java 如何访问同名的方法或变量

    在Java编程语言中,处理同名的方法或变量是一项常见的挑战,尤其是在处理继承、包和类的层次结构时。为了理解如何有效地访问这些同名的成员,我们需要深入理解Java的命名规则、作用域、访问修饰符以及多态性。以下是...

    Java方法继承、方法重载、方法覆盖小结.doc

    Java 方法继承、方法重载、方法覆盖、小结 Java 编程语言中,方法继承、方法重载、方法覆盖是三个重要的概念,它们在软件开发中发挥着重要作用。 方法继承 方法继承是 Java 编程语言的一种机制,允许一个类继承另...

    java继承类实例

    在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...

    java基础继承封装多态

    继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是使用 `extends` 关键字,例如 `public class Child extends Parent`。在 Java 中,只支持单一继承,也就是说一个类只能有一个直接父类...

    Java类继承初始化顺序

    当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、super关键字以及方法的覆盖。 首先,了解类初始化的顺序至关重要。当创建一个子类实例时,初始化过程遵循以下步骤: 1. ...

    java关于继承的思维导图(Xmind)

    - 如果子类和父类有同名的方法,子类的方法会覆盖(override)父类的方法,这称为方法重写。 5. **访问修饰符与继承** - 访问修饰符对继承的影响:`public`成员在任何地方都可访问,`protected`成员在同一个包内...

    Java--类的继承

    继承提供了代码的复用性,使得子类可以共享父类的属性和方法,同时还可以添加自己的特定功能。本文将深入探讨类继承的实现、作用以及相关的Java特性。 1. 类继承的实现和作用: 类继承通过使用关键字`extends`来...

    关于JAVA继承的讲解

    Java 继承是面向对象编程中的一个重要概念,它允许一个类(子类)从另一个类(父类)中继承属性和方法,从而实现代码的复用和类的层次结构。这种方式使得子类能够继承父类的特性,同时可以添加自己的特性和功能,而...

    Java 经典Javapeople继承与多态

    在"Java 经典Javapeople继承与多态"的场景中,多态性可能体现在如下情况:假设有一个处理人员的通用方法`process(Person p)`,即使传入的是`Student`或`Teacher`对象,只要它们都继承自`Person`,此方法依然可以正常...

    java实验报告(2)-多态和继承

    重写是指子类对父类的虚方法给出自己的实现,而方法重载则是在同一类中定义多个同名但参数列表不同的方法。 - **方法的重写(Override)** ```java public class Parent { public void print() { System.out....

    Java继承习题

    ### Java继承习题知识点解析 #### 一、基础概念与选择题分析 1. **final修饰的方法** - **题目**: 若在某一个类定义中定义有如下的方法:`final void workDial()`该方法属于 - A. 本地方法 - B. 最终方法 - C....

    java 继承和多态的讲解

    在Java中,类的继承允许一个类(子类)从另一个类(父类)继承属性和方法,从而实现代码的共享和结构的层次化。这使得子类可以拥有父类的所有非私有属性和方法,同时还能添加自己的特性和功能。 继承的关键字是 `...

    java 接口 类 继承 多态的简单实例

    - **重载(Overload)**:是指在同一个类中可以有多个同名方法,但参数列表必须不同(参数个数、类型或顺序),这使得我们可以通过不同的参数调用相同名字的方法。 - **重写(Override)**:是指子类继承父类后,...

    论JAVA继承机制中父类与子类的关系

    文章围绕子类继承父类成员的过程、成员变量及方法的赋值、重写、覆盖等问题展开讨论,旨在帮助读者更好地理解Java继承中的重点与难点。 #### 关键词 - 继承机制 - 父类 - 子类 #### 一、超类的属性或方法在继承...

    java类的继承实例

    当子类有一个与父类同名但参数列表不同的方法时,这种情况称为方法隐藏,而不是覆盖。 **super 关键字** 1. 在子类中,`super` 关键字用来引用父类的对象,可以访问父类的成员。 2. `super` 也可以用于在子类构造器...

    java继承、多态的简单程序.zip

    这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承(Inheritance) 在Java中,继承允许一个类(子类)...

    轻松学Java之继承与多态优秀PPT.pptx

    Java继承是指一个类从另一个类继承成员变量和成员方法的过程。继承是面向对象编程的核心机制之一,它允许我们创建一个新的类,并继承另一个类的成员变量和成员方法,从而简化代码编写和维护。 在Java中,继承是通过...

Global site tag (gtag.js) - Google Analytics