java面向对象入门级(3)

2019-03-09 19:44

public class TestPoly_2 { } class A { }

class B extends A {

public void f() public void f() { }

System.out.println(\

//m函数可以实现调用整个A类族所有对象f方法的功能 public static void m(A aa) { }

public static void main(String[] args) { }

A aa = new A(); B bb = new B(); C cc = new C(); m(aa); m(bb); m(cc); aa.f();

}

{ }

public void g() { }

System.out.println(\哈哈\System.out.println(\

public class TestPoly_4 { } /* */ class A {

A() {

2008年6月6日8:42:07 super的使用

public static void main(String[] args) { }

A aa = new B();//等价于 A aa; aa = new B(); aa.f();

//aa.g(); //error

}

}

System.out.println(\

A(int i) { }

class B extends A {

B() {

super(2); //如果把该语句注释掉的化,则编译器默认的是自动隐藏调用

super(); 但如果父类没有无参的构造函数,则会报错 }

class C extends B {

C() {

//int k = 10; //如果该语句生效 则会出错,因为会导致super()语句不

}

//一个子类的构造函数中只能出现一个 super(....)

System.out.println(\

是构造函数的第一条语句

super(); //35行 每个子类构造方法的第一条语句,都是隐含地调用

super(),如果父类没有无参的构造函数,那么在编译的时候就会报错。

//super();语句可以写,也可以不写,不写的化,系统

会自动调用的

//如果显示写出来的话,编译器要求该语句前面不能加

任何语句,也就是说该语句必须保证是第一条语句

// super()也可以改为super(2); 但前提是父类必须有带

一个参数的构造函数,否则也会报错 }

class TestSuper_1 { } /*

在j2sdk1.4.2_16中的运行结果是: } }

System.out.println(\

//如果把35行改为 super(2); 编译时就会报错!

public static void main(String[] args) {

C cc = new C();

//System.out.println(\

----------------------- BBBB CCCC

-----------------------

总结:

1、每个子类构造方法的第一条语句,都是隐含地调用super(),如果父

类没有这种形式的

2、如果显示的写出super();语句,则必须保证该语句是第一条语句,

构造函数,那么在编译的时候就会报错。

否则会出错

3、super();如果不写,则编译器会自动添加,所以此时如果父类没有无

参的构造函数就会出错

5、调用父类的构造函数的语句必须借助于super,不能直接写父类的类

4、既可以显示写super();前提是父类必须有无参的构造函数 也可以显示写super(实参); 前提是父类必须有带参的构造函数

名,这与C++不同, */ class A { }

class B extends A {

A(int i) { }

this.i = i;

public int i;


java面向对象入门级(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016届安徽师范大学附属中学高三最后一卷数学(文)试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: