参考网址:
http://bbs.csdn.net/topics/310081194
class A //定义父类 { int num=10; } interface B //定义接口 { int num=1; } public class C extends A implements B{//子类实现了接口并继承了父类 int num = 2; public static void main(String[] args){ System.out.println("num is "+num); //这一行报错,不知道访问的num是父类中的还是接口中的 } }
一,从帖子上看到的方法
class A{int num=10;} interface B {int num=1;} public class C extends A implements B{ public static void main(String[] args){ //System.out.println("num is "+A.num); C c=new C(); B b=c; System.out.println("B's num:"+b.num); //调用B中的num A a=c; System.out.println("A's num:"+a.num); //调用A中的num } }
二,自己总结方法
接口中的变量都默认final static修饰,故可以直接用接口名访问,而父类可以用关键字super,子类本身可以用this。
下面是我自己的一个小Demo
public class Demo extends B implements A { int x = 9; public void pX() { System.out.println(this.x); //访问本身的变量,如果Demo类没有定义num,则报错 System.out.println(super.x);//访问父类中过的变量 System.out.println(A.x);//访问父接口中过的变量,直接用类名就可以 } public static void main(String[] args) { new Demo().pX(); } } interface A { int x = 10; } class B { int x = 12; }
相关推荐
在Java编程语言中,子类继承父类是一种常见的特性,它允许子类扩展或复用父类的功能。当我们创建一个子类对象并将其赋值给父类引用时,这种行为被称为向上转型(Upcasting)。这一过程是自动且安全的,因为子类对象...
继承的规则允许子类拥有父类的所有字段和方法,但不允许子类访问父类的私有成员。如果需要在子类中访问父类的私有成员,则需要在父类中提供公共或受保护的方法来获取这些值。子类通过重写父类的方法,可以提供特定于...
- 如果子类中定义了与父类相同的方法,这就是方法覆盖。在子类实例中调用该方法时,将执行子类的方法,而不是父类的。这是因为子类的对象在内存中包含了父类的所有属性和方法,但子类的方法优先级更高。 4. **静态...
在子类中,`super`可以用来调用父类的构造器、方法或访问父类的成员变量。 **对象的上、下转型** 对象的上转型是指将子类对象赋值给父类引用,允许调用父类中的方法。下转型则是将父类对象转换为子类对象,需要...
当子类和父类位于同一包时,子类可以访问父类的所有非私有成员。而在不同包中,子类只能访问父类的`protected`和`public`成员。在`E`类的示例中,`B`类继承自`A`类,并有一个自己的`double`类型变量`y`,但这里省略...
当子类中有与父类同名的成员时,可以通过`super`来调用父类的方法或访问父类的变量,比如`super.someMethod()`或`super.someVariable`。 在实践环节,学生被要求编写和修改`Application5_1.java`到`Application5_4....
当子类中定义了与父类同名的变量时,子类中的变量会隐藏父类的变量。同时,子类可以重写父类的方法,这通常是为了提供更具体的行为。例如,子类可以定义与父类方法签名完全相同的方法,从而覆盖父类的方法。 `super...
在 Java 中,访问修饰符 `protected` 表示该成员变量或方法可以被同一个包中的子类访问。如果子类的对象的 `protected` 成员变量或方法是从父类继承的,那么就要一直追溯到该 `protected` 成员变量或方法的“祖先”...
Java抽象类接口与多态是Java编程语言的核心概念,本篇资源文件将详细介绍Java中的抽象类、接口和多态的概念、特点和应用。 一、抽象类 抽象类是Java中的一种特殊的类,它不能被实例化,仅供子类继承使用。抽象类的...
在上述代码中,`Child`类就是`Parent`类的子类,它可以直接访问`Parent`类中的`commonVariable`变量和`commonMethod()`方法。这样,我们就可以在不重复编写相同代码的情况下,为不同的类提供共有的功能。 然而,有...
成员变量的隐藏发生在子类中声明了与父类同名的变量时,子类会优先使用自己定义的变量,而隐藏父类的变量。方法重写(Override)则发生在子类提供与父类相同名称和签名的方法,以便为特定的子类行为提供不同的实现。...
成员变量隐藏是指子类中定义了与父类相同名称但类型不同的变量,导致父类的同名变量在子类中被隐藏。子类对象将只操作自己定义的变量。方法重写(Override)则允许子类改变从父类继承的方法的行为,提供自己的实现。...
7. **super关键字**:在子类中,`super`关键字用于访问和调用父类的成员,包括方法和变量。 8. **final关键字**:在Java中,`final`关键字可以用于类、方法和变量,阻止进一步的继承或者修改。 **二、接口** 1. *...
- **使用`super`关键字访问父类成员**:如果需要在子类中引用父类中的同名成员变量,可以使用`super`关键字来显式地访问。 #### 四、方法覆盖 方法覆盖是指子类重写父类的方法。在Java中,方法覆盖必须满足以下...
10. **类的层次结构**:在继承关系中,子类可以访问父类的公共和受保护的成员,包括同名的成员。如果子类和父类有同名方法,可以通过`super`关键字调用父类的版本。 在实际编程中,理解并熟练运用这些概念是至关...
子类到父类的转换允许我们在不考虑具体子类的情况下使用父类接口,增强了代码的通用性。而父类到子类的转换则提供了更强的类型控制,可以访问子类特有的功能,但这需要谨慎操作,以防止运行时错误。 在实际编程中,...
Java语言程序设计中,继承与接口是面向对象编程的核心概念,它们使得代码具有更好的复用性和扩展性。在第五章中,我们详细探讨了这些主题。 1. 继承(Inheritance) - 继承是一种创建新类的机制,新类基于已存在的...
当子类继承父类时,它能够访问父类中那些被声明为public或protected的成员变量和方法。私有成员变量和方法因为被封装在父类内部,所以不能被子类直接访问,但可以通过父类提供的公共接口进行间接访问。 在子类中,...
1. 成员变量的继承:子类可以访问父类的非私有成员变量。 2. 成员变量的隐藏:如果子类中定义了与父类同名的成员变量,那么在子类内部,父类的成员变量会被隐藏,即子类的成员变量优先级更高。例如,在示例5.1中,`...