继承

来源:互联网 发布:雅思写作8分 知乎 编辑:程序博客网 时间:2024/06/05 07:28

——————————————————案例1————————————————————

Cartoon

package ConstructorExtends;/** *<span style="color:#ff0000;"> 在构建器中执行初始化,通过调 用基础类构建器,后者有足够的能力和权限来执行对基础类的初始化。在衍生类的构建器中, Java 会自动插 * 入对基础类构建器的调用</span> *  */class Art {Art() {System.out.println("Art constructor");}}class Drawing extends Art {Drawing() {System.out.println("Drawing constructor");}}public class Cartoon extends Drawing {Cartoon() {System.out.println("Cartoon constructor");}public static void main(String[] args) {Cartoon x = new Cartoon();}}

输出:

Art constructorDrawing constructorCartoon constructor


————————————————————案例2——————————————————————

Chess

package ConstructorExtends;/** * 如果类没有默认的自变量,或者想调用含有一个自变量的某个基础类构建 器,必须明确地编写对基础类的调用代码。这是用 super * 关键字以及适当的自变量列表实现的 */class Game {Game(int i) {System.out.println("Game constructor");}}class BoardGame extends Game {BoardGame(int i) {super(i);System.out.println("BoardGame constructor");}}public class Chess extends BoardGame {Chess() {super(11);System.out.println("Chess constructor");}public static void main(String[] args) {Chess x = new Chess();}}

Game constructorBoardGame constructorChess constructor

——————————————————————案例3——————————————————————

PlaceSetting

package ConstructorExtends;class Plate {Plate(int i) {System.out.println("Plate constructor");}}class DinnerPlate extends Plate {DinnerPlate(int i) {super(i);System.out.println("DinnerPlate constructor");}}class Custom {Custom(int i) {System.out.println("Custom constructor");}}public class PlaceSetting extends Custom {DinnerPlate pl;PlaceSetting(int i) {super(i + 1);pl = new DinnerPlate(i + 5);System.out.println("PlaceSetting constructor");}public static void main(String[] args) {PlaceSetting x = new PlaceSetting(9);}}

Custom constructorPlate constructorDinnerPlate constructorPlaceSetting constructor

——————————————————案例4——————————————————————

Beetle

package ConstructorExtends;class Insect {int i = 9;int j;Insect() {prt("i = " + i + ", j = " + j);j = 39;}static int x1 = prt("static Insect.x1 initialized");static int prt(String s) {System.out.println(s);return 47;}}public class Beetle extends Insect {int k = prt("Beetle.k initialized");Beetle() {prt("k = " + k);prt("j = " + j);}static int x2 = prt("static Beetle.x2 initialized");static int prt(String s) {System.out.println(s);return 63;}public static void main(String[] args) {prt("Beetle constructor");Beetle b = new Beetle();}}

static Insect.x1 initializedstatic Beetle.x2 initializedBeetle constructori = 9, j = 0Beetle.k initializedk = 63j = 39

————————————————————案例5————————————————————

BlankFinal

package ConstructorExtends;/** * 无论在哪种情况下,空白 final 都必须在实际使用前得到正确的初始化 * */class Poppet {}class BlankFinal {final int i = 0; final int j; final Poppet p; BlankFinal() {j = 1; p = new Poppet();}BlankFinal(int x) {j = x; p = new Poppet();}public static void main(String[] args) {BlankFinal bf = new BlankFinal();}}
无输出


0 0