Note of Chap7

来源:互联网 发布:dcs编程教程 编辑:程序博客网 时间:2024/06/06 08:59
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的不可变性)     ...?**?...



0 0
原创粉丝点击