Note of Chap7

本文深入探讨Java中接口与抽象类的区别与联系,包括如何实现接口,接口与抽象类的特点,以及内部类的种类与使用场景。同时,还介绍了Object类的clone方法及其工作原理。
Note of Chap7:

一个类可以实现多个接口。必须实现接口中定义的抽象方法。

默认接口只能本包内被实现。接口中变量全为public static final;接口中方法全为abstract,自动public。

继承原则:访问范围只能放大不能缩小。故接口中的方法的实现必须被声明为public。

类实现接口,子接口继承父接口。接口抽象出的方法,给不同的类无限的发挥空间。

子类继承父类,为了扩展功能或重写相应方法;子接口继承父接口,同样如此。

常量组值放在接口中定义,在类中实现该接口。类可直接使用接口中定义的常量。

接口作用:实现多态;创建常量组。



抽象类与接口的比较:
区别:
一个类实现多接口,但只能继承一个抽象类;

抽象类可有飞抽象方法,接口中全为抽象方法;

抽象类中方法可有public , private, protected ,接口中的方法全为public。

抽象类可有构造函数,接口不能。

接口可以声明接口类型的变量,其值必须是实现了该接口的类的对象。

联系:

接口定义了类的框架,实际上是一种完全的抽象类。

不能实例化。

通过它们存放子类对象或是实现类的对象。即:实现多态。


内部类:

静态内部类,非静态内部类。

静态内部类不可访问外部类的非静态变量/方法。

宿主类通过 [类名.变量名] 访问静态内部类的静态变量,通过非静态内部类对象访问非静态内部类。

局部内部类放在方法中,先定义、后new。调用方法时,调用该内部类的构造方法。

匿名内部类在界面开发中经常用到。



Object类的clone方法

实现方法:类A继承Cloneable接口,(A)this.clone赋值给类A的对象,作为返回值给clone方法的返回值。从而进行克隆。

实现机制:Object按照字段进行一个个拷贝。

浅克隆:对于可变对象变量,获得的只是对象的地址,拷贝得到的对象中若有变量指向可变对象,原对象和克隆得到的对象仍然所含的可变对象仍指向同一个对象,so改变其中一个对象会改变另外一个。(String的不可变性)     ...?**?...



chap-secrets=/path/to/file By default is chap-secrets=/etc/ppp/chap-secrets Specifies alternate chap-secrets file location. username-hash=hash1[,hash2] By default is not defined. Specifies hash chain to calculate username hash. hash1, hash2 are openssl known digest names (md5, sha1, etc). For example, username-hash=md5,sha1 means hash username through md5 and then binary result hash through sha1. Username have to be specified as hexadecimal dump of digest result.Password field have to be encrypted using smbencrypt (NT Hash part). encrypted=0|1 By default is disabled: encrypted=0 Specifies either chap-secrets is encrypted. Note: Encryption is incompatible with auth_chap_md5 module. To enable chap-secrets encryption ablity accel-ppp must be compiled with -DCRYPTO=OPENSSL (which is default). gw-ip-address=x.x.x.x[/mask] By default is not defined. Specifies address to use as local address of ppp interfaces if chap-secrets is used for IP address assignment. Mask is used for IPoE.2.5.2 Chap-secrets file example #client server secret ip-address speed user001 * password1 100.64.100.1 20480/10240 user002 * passowrd2 * 10240/10240 user003 * passowrd3 ip_pool1 10240 eth0.101 * eth0.101 ipoe_pool 20480 100.64.0.2 * 100.64.0.2 * • The first column contain username. • The second column is only keep for support chap secrets files standard. • The third column contain secret or password. • The fourth column may contain allocated ip address or pool name which configured in [ip-pool] section. • The fifth column contain rate-limit. 什么意思
最新发布
09-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值