博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 复用类
阅读量:6830 次
发布时间:2019-06-26

本文共 1208 字,大约阅读时间需要 4 分钟。

hot3.png

一、复用类的目的

使用类而不破坏现有程序代码。

二、复用类的方式

1.组合

2.继承

“is-a”(是一个)的关系是用继承来表达的。
“has-a”(有一个)的关系是用组合来表达的。

三、继承

继承中,构建过程是从基类“向外”扩散的,所以基类在子类构造器可以访问它之前,就已经完成了初始化。

如果没有默认的构造器,或者说子类想显式的调用基类中带参数的构造器,就必须要借助关键字super显式的编写调用基类带参的构造器。并且调用基类的构造器代码需要编写在子类构造器中的第一行。

在面向对象编程中,应当慎用继承。

当需要使用继承时,可以判断是否需要从新类向基类进行向上转型。如果必须向上转型,继承是必要的;如果不需要,则好好考虑是否需要继承。

通过下例来了解包括继承在内的初始化全过程。
class Insect {    private int i = 9;    protected int j;    public Insect() {        System.out.println("i="+i+" j="+j);        this.j = 11;    }    private static int init1 = printInit("static Insect init1 initialzed");    static int printInit(String str){        System.out.println(str);        return 33;    }}public class Beetle extends Insect {    private int a = printInit("Beetle a initialzed");    public Beetle() {        System.out.println("a="+a);        System.out.println("j="+j);    }    private static int init2 = printInit("static Beetle init2 initialzed");    public static void main(String[] args) {        System.out.println("main method....");        Beetle b = new Beetle();    }}
结果:
static Insect init1 initialzedstatic Beetle init2 initialzedmain method....i=9 j=0Beetle a initialzeda=33j=11

转载于:https://my.oschina.net/hongdengyan/blog/209696

你可能感兴趣的文章
Objective-C:MRC(引用计数器)获得对象所有权的方式(init、retain、copy等)
查看>>
PowerShell 在线教程 4
查看>>
不要让你的未来,现在恨自己
查看>>
jquery表单验证
查看>>
使用 Jasmine 进行测试驱动的 JavaScript 开发
查看>>
[CareerCup] 8.2 Call Center 电话中心
查看>>
GestureDetector和SimpleOnGestureListener的使用教程
查看>>
【FFmpeg】Windows下FFmpeg编译
查看>>
sqlserver字段类型详解
查看>>
Java多线程16:线程组
查看>>
ubuntu wireshark找不到网卡及开启IP转发
查看>>
波音公司开发最轻金属 99.99%是空气
查看>>
Python执行效率测试模块timei的使用方法与与常用Python用法的效率比较
查看>>
Hive架构及Hive On Spark
查看>>
TextureView+SurfaceTexture+OpenGL ES来播放视频(二)
查看>>
浏览器请求中文乱码(ISO-8859-1 to UTF-8)
查看>>
VC6工程升级VS2013遇到的问题
查看>>
[Redux] Implementing Store from Scratch
查看>>
模糊集合和隶属度函数--AForge.NET框架的使用(一)
查看>>
adadmin: error while loading shared libraries: libclntsh.so.10.1
查看>>