`

java子类中访问父类与父接口相同的变量

    博客分类:
  • Java
 
阅读更多

参考网址:

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笔试题大汇总

    子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。 子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。注意:...

    Java开发技术大全(500个源代码).

    deriveClass.java 子类访问父类变量示例 getLinePara.java 获取命令行参数示例 hasStaticMethod.java 静态成员方法示例 hasStatMember.java 静态成员变量示例 HelloNative.c 用C写的一个小程序 HelloNative....

    java三大特性说明

    要求子类当中只有自己特有的方法和属性,其他部分与父类和其他同级子类相同的部分都从父类继承得来.  有关抽象类:  抽象类是用于描述自然界中层级较高的对象类,人们无法对一个抽象类实例化,如动物。只能用一个...

    Java基础知识总结(总共六章)

    JAVA 基础知识总结 第一章 Java 入门 ...在java 中允许多层继承,在继承中子类不能访问父类中的私有操作,而 只能继承全部的公有操作,对于私有内容不能直接访问,但是可以通过 其他途径访问 在实例化子类对象时

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    对象中,所以,访问对象中的数据只有一种途径,那就是利用一个公开的接口。 实际上,封装在程序和数据之间设置了一道栅栏,它可以阻止一部分的设计错误,不至 于涉足应用程序其他部分的数据。 2.2.3 消息 ...

    java面试题

    重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象...

    《Java程序设计案例教程》教学课件05深入Java面向对象.pptx

    5.2 继承 Java中通过关键字extends实现子类对父类的继承。定义子类的基本语法格式如下。 修饰符 class 子类名 extends 父类名 { //类体 } 除了增加"extends 父类名"以外,其余含义和类的定义相似,可参阅4.2节。 ...

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

    JAVA基础知识精华总结 收藏

    (3) 如果使用public来修饰接口,则接口必须与文件名相同。 8、 多重继承 (1) 一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗 号分隔。 (2) 接口之间可多重继承,注意使用关键字...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    java 面试题 总结

    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    Java程序设计习题(含答案解析).doc

    ( T ) 39、类体中private修饰的变量在本类中能访问,类生成的对象也能访问。( F ) 40、线程使用sleep()方法休眠后,可以用notify()方法唤醒。( F ) 41、一个异常处理中 finally语句块只能有一个或者可以没有。( T ) ...

    JAVA细节知识

    注意:当父类的引用指向子类对象时,若访问被重写的方法,则将访问被重新定义的子类中的方法。 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,...

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象的概念和 Java 实现-2 回顾 类是具有相同属性和行为的一组对象的 集合 , 对象是类的实例 封装是隐藏对象实现细节的过程,以便不让用户看到实现的细节 类可用Class 来定义,类的变量和方法可被该类的实例访问,...

    疯狂JAVA讲义

    学生提问:既然内部类是外部类的成员,是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类? 211 6.7.4 局部内部类 211 6.7.5 匿名内部类 212 6.7.6 闭包(Closure)和回调 215 6.8 ...

    java初学者必看

    3.5 变量与常量 3.5.1 变量声明 3.5.2 变量赋值和初始化 3.5.3 常量 3.6 类型转化 3.6.1 数值类型之间的转换 3.6.2 强制类型转换 3.7 运算符 3.7.1 算术运算符 3.7.2 关系运算符 3.7.3 逻辑运算符 3.7.4 ...

    java:接口和抽象类练习

    抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是...在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。 接口: 接口(英文:

    计算机(专升本)Java程序设计复习资料.doc

    用来访问父类被隐藏的成员变量 B.用来调用父类中被重载的方法 C.用来调用父类的构造函数 D.以上都是 5.下面关于类及其修饰符的一些描述,不正确的是( )。 A.abstract只能用来派生类,不能创建abstract类的对象 B....

Global site tag (gtag.js) - Google Analytics