【ThinkingInJava】9、继承与清理
来源:互联网 发布:php 邀请码注册数据库 编辑:程序博客网 时间:2024/05/24 23:11
/*** 书本:《Thinking In Java》* 功能:继承与清理* 文件:Frog.java* 时间:2015年4月1日19:38:22* 作者:cutter_point*/package Lesson8Polymorphism;import static net.mindview.util.Print.*;class Characteristic{private String s;Characteristic(String s) {this.s = s;print("Creating Characteristic " + s);}protected void dispose(){print("disposing Characteristic " + s);}}class Description{private String s;Description(String s){this.s = s;print("Creating Description " + s);}protected void dispose(){print("disposing Description " + s);}}//类的组合class LivingCreature{private Characteristic p = new Characteristic("is alive");private Description t = new Description("Basic Living Creature");LivingCreature(){print("LivingCreature()+构造函数");}protected void dispose(){print("LivingCreature dispose");t.dispose();p.dispose();}}//类的继承class Animal extends LivingCreature{private Characteristic p = new Characteristic("has heart");private Description t =new Description("Animal not Vegetable");Animal() { print("Animal()"); }protected void dispose(){print("Animal dispose");t.dispose();p.dispose();super.dispose();}}class Amphibian extends Animal{private Characteristic p = new Characteristic("Can live in water");private Description t = new Description("Both water and land");Amphibian() {print("Amphibian()");}protected void dispose(){print("Amphibian dispose");t.dispose();p.dispose();super.dispose();}}public class Frog extends Amphibian{private Characteristic p = new Characteristic("Croaks");private Description t = new Description("Eats bugs");public Frog() { print("Frog()"); }protected void dispose(){print("Frog dispose");t.dispose();p.dispose();super.dispose();}public static void main(String args[]){Frog frog = new Frog();print("Bye bye!");frog.dispose();print("all is over");}}
* 终结:
* 1、首先就是调用父类的构造函数
* 2、到根父类之后,首先实例化数据成员(一般是类的组合的实现)
* 3、数据成员实例化之后,再是构造函数里面的类容
输出:
Creating Characteristic is alive obj1
Creating Description Basic Living Creature obj1
LivingCreature()+构造函数 obj1
Creating Characteristic has heart obj1
Creating Description Animal not Vegetable obj1
Animal() obj1
Creating Characteristic Can live in water obj1
Creating Description Both water and land obj1
Amphibian() obj1
Creating Characteristic Croaks obj1
Creating Description Eats bugs obj1
Frog() obj1
Bye bye! obj1
Frog dispose obj1
disposing Description Eats bugs obj1
disposing Characteristic Croaks obj1
Amphibian dispose obj1
disposing Description Both water and land obj1
disposing Characteristic Can live in water obj1
Animal dispose obj1
disposing Description Animal not Vegetable obj1
disposing Characteristic has heart obj1
LivingCreature dispose obj1
disposing Description Basic Living Creature obj1
disposing Characteristic is alive obj1
all is over obj1
- 【ThinkingInJava】9、继承与清理
- 《Thinkinginjava》第5章-初始化与清理
- ThinkingInJava
- 【ThinkingInJava】62、生产者与消费者
- 《Thinkinginjava》第9章-接口
- 【ThinkingInJava】51、散列与散列码
- 【ThinkingInJava】18、 关于java中的闭包与回调
- 【ThinkingInJava】43、与动态代理混合的装饰器模式
- 【ThinkingInJava】笔记
- 初始化与清理之二(清理)
- 初始化与清理
- CH5 初始化与清理
- 4.初始化与清理
- 初始化与清理
- Java初始化与清理
- 初始化与清理
- 初始化与清理
- 对象初始化与清理
- hdu 5134 Highway
- yii2中beforeDelete的方法
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记17 Deledgation代理
- 云计算
- 2015-第6周项目6-复制模板类(1)&(2)
- 【ThinkingInJava】9、继承与清理
- Django动态网站基础
- RabbitMQ入门指南二(Java)
- Java 枚举7常见种用法
- lua使用优化建议
- struts2 请求过程源码分析【精】
- Linux很多命令不能使用的解决办法
- YUV格式详解
- 关于安卓api版本支持问题