接口:
用于处理继承单一的局限性;
*** 接口是一个比抽象类还抽象的类,接口里面所有的方法都是抽象方法.
接口和类的关系是实现,implements
interface
格式:
interface 接口名{ 抽象类方法体 };
类与接口的关系是实现,一个类使用一个接口,必须实现接口中所有的抽象方法;
特点:
接口内部只能有抽象方法;
*** 接口无法创建对象,因接口是抽象类;
***** 只能使用public&abstract修饰;
建议手动添加接口方法的修饰符;
只能有常量/自定义常量;
默认使用public static final来修饰自定义常量;
接口内部没有构造方法:
因内部没有成员变量,
也不能创建对象;
一个方法能定义成static,就定义为static;
1> 被所有对象所共享;
2> 可以使用类名直接调用;
3> 静态加载优先对象,随着类的加载时候就已经加载;加载于方法区;
注: 被static修饰的方法可以直接调用;
可以直接调用static修饰的成员变量
不可以调用非静态的成员方法
不可以调用非静态的成员变量
接口与接口;
类与类是: 继承关系;单一继承,多层继承.
类与接口: 实现关系;多实现.
接口与接口: 继承关系;多继承.
List:有序接口
Size:无序接口
优点:
1>.改变了继承的单一继承的局限性;
2>.对外提供规则和规范;所有方法都经过public所有修饰;
3>.降低了程序的耦合性;即提高代码的紧密性;5565` `==
4>.提高了代码的复用性;
*** 抽象类和接口的区别:
共性: 不断的抽取,抽取出抽象的概念;
区别:
1>. 接口与类的关系: 实现,多实现
类与抽象类的关系: 继承,单一继承;
2>. 成员:
抽象类可以有成员变量;也可以有成员常量;
接口只能有成员常量.
3>. 成员方法:
抽象类可以有抽象方法,也可以有非抽象方法;
接口只能有抽象方法,默认的修饰符是public abstract
4>. 构造方法:
抽象类有构造方法,
接口没有抽象方法,
多态: 前提:子父类关系,方法的从谢,父类引向子类关系;
格式:
父类名 变量名 = new 子类名();(此种创建对象的方法可称:向上转型)
动态绑定:
运行期间,指向右边,调用子类方法;看对象是谁,那就输出谁的方法体;
编译期间,指向左边;
成员变量: 编译时看左边,运行时看左边.
成员方法: 编译时看这边,运行时看右边;(调用时,遵循动态绑定.)
静态方法: 编译时看左边,运行时是左边.(调用时,是用类名的数据类型取调用)
向上转型:
向下转型:` 把父类创建的变量强制转换为子类赋值给子类变量;
缺点: 无法访问子类特有的成员.
优点: 可以提高可维护性;提高代码的可扩展性;
***** (判断两个类型是不是同一个类型)
A instanceof B; 表示A是否是B这个类型; |
|