如何用关键字调用父类代码
这要看父类的【成员变量】和【方法】的访问级别,例如: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,而子类不会受到影响。
=============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(); }}答案补充是的
super("父类构造方法的参数") 调用父类的构造调用父类的方法和属性 只要是子类 就可以用 this. 调用
看个例子面试例题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。
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()); }}答案补充这是最简单的例子
答:详情>>
答:详情>>
答:cisco网络技术是一个为CTO、IT技术经理、网络工程师、安全工程师、数据库工程师、网络管理员、系统工程师、开发工程师、项目管理人员等IT技术人员搭建的有关先...详情>>