爱问知识人 爱问教育 医院库

如何用关键字调用父类代码

首页

如何用关键字调用父类代码


        

提交回答
好评回答
  • 2008-11-24 12:42:00
      这要看父类的【成员变量】和【方法】的访问级别,例如:public class SubExample extends SuperExample {	public int a = 5;	public int getA(){		return super。
      a; } public static void main(String[] args) { SubExample s = new SubExample(); intln("a = "+s。a); intln("super。a = "+ tA()); intln(s。
      b); intln(s。d); }}由于子类中的a覆盖了父类中的a,所以调用父类的a只能采用间接的方法,例如示例中的getA()方法。若子类没有变量与父类同名,则子类对象可以直接调用父类成员变量,例如:s。b就调用了父类的b变量。调用父类方法同理。
      在这里要注意:变量d,这是一个默认的访问级别,只有子类和父类在一个包内(package)的情况,子类实例才可以调用父类的变量d答案补充父类没有粘上,下面是父类public class SuperExample { public int a = 1; protected int b = 2; private int c = 3; int d = 4;}答案补充是的,这是java提供的一种机制,例如:在上面的示例中分别添加两个构造方法public SuperExample(int p){ a = p; }public SubExample(int p) { super(p); }这样运行子类的main方法,父类的a会被赋值为9,而子类不会受到影响。
      

    r***

    2008-11-24 12:42:00

其他答案

    2008-11-25 11:35:00
  • =============super class===================public class A {	public void out() {		System.out.println("A.out()...");	}}=============sub class===================public class B extends A {	public void out() {		System.out.println("B.out()...");	}	public void superOut() {		super.out();	}	public static void main(String[] args) {		B b = new B();		b.out();		b.superOut();	}}答案补充是的

    k***

    2008-11-25 11:35:00

  • 2008-11-25 10:19:00
  • super("父类构造方法的参数") 调用父类的构造调用父类的方法和属性  只要是子类 就可以用 this. 调用

    长***

    2008-11-25 10:19:00

  • 2008-11-24 20:45:00
  •   看个例子面试例题1:以下代码的输出结果是下列哪个选项?[Sun公司2005年面试题]class Base{Base(){        System。out。println("Base");        }}public class Checket extends Base{Checket(){       System。
      out。println("Checket"); super(); } public static void main(String argv[]){ Checket c = new Checket(); // super(); } } A.Compile time errorB.Checket followed by BaseC.Base followed by ChecketD.runtime error解析:这是一个考查super构造函数的面试例题。
      子类的构造函数如果要引用super的话,必须把super放在函数的首位,不然会出现这样的报错:Checket。 : call to super must be first statement in constructor super();如果一定要引用super构造函数,则必须把super()放在前面,代码如下。
      class Base{Base(){ System。out。println("Base"); }}public class Checket extends Base{Checket(){ super(); System。
      out。
      println("Checket"); } public static void main(String argv[]){ Checket c = new Checket(); // super(); } } 答案:会出现编译报错,选项A。

    d***

    2008-11-24 20:45:00

  • 2008-11-23 21:36:00
  • class A {  A(){    System.out.println("Class in A");  }}class B extends A{  //调用父类构造方法   System.out.println(super());     B() {     System.out.println("Class in B");   }}public class Test {  public static void main(String[] args) {    System.out.println(new B());  }}答案补充这是最简单的例子

    l***

    2008-11-23 21:36:00

类似问题

换一换
  • 程序设计 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):