java——接口

2018-08-29  本文已影响0人  打死你的小乌龟

接口
interface定义接口
接口提高了功能的拓展性,降低了事务之间的耦合性
接口中定义的是拓展功能
接口的好处:多实现

接口中的成员格式:

1.public static final String NAME = “小李”;//常量定义
2.public abstract void show();//抽象方法

1.接口中只能出现public访问修饰符
2.接口中不能写构造器
3.接口不能实例化
4.一个类可以实现多个接口,多个接口之间用逗号分隔,但是一个类只能继承一个父类

1.重要性:
在Java中 abstract class和interface是支持抽象类定义的两种机制,正是有这两种机制的存在才赋予了Java强大的面向对象能力
2.简单,规范性
3.维护,拓展性
4.安全,严密性:接口是实现软件松耦合的重要手段

抽象类和接口的区别

共同点
都可以有抽象方法,都不能实例化

不同点
1.抽象类用abstract class修饰 接口用interface修饰
2.接口中的属性都是常量默认public static final 修饰
抽象类中的属性没有任何限制
3.抽象类中可以有抽象方法也可以有具体方法
接口中只能有抽象方法
4.抽象类中可以定义构造器,接口中不能定义构造器
5.一个类可以实现多个接口,但是一个只能继承一个抽象类

final:关键字

1、final 修饰的类,不能再被继承。
1) Java 的String就是final类,不能被继承!(面试题可能考到)。
2) Math 是final类,不能被继承!
3) Integer 、Long、Character等包装类是final类,不能被继承!
4) 在实际项目开发中,原则上不允许使用final类!
Spring,Hibernate,Struts 2,这些框架使用了"动态继承代理"技术,使用final的类会影响"动态代理技术"的实现。

2、final修饰的方法,不能再被覆盖
在实际项目开发中,原则上不允许使用final方法! 原因也是因为: 动态代理技术。

3、final 修饰的变量,初始化以后不允许再修改了。

4、final static -- Java使用final static修饰的变量作为常量。
1) 一般要求常量名都有大写字母。
2) Java常量不是const(c、c++中修饰常量的修饰符)。

final 修饰的类,不能再被继承。

注:

final修饰属性表示“不能改”,static修饰属性表示属于类的“仅此一份”,注意区分。

知识点:
1、final的局部变量,只能初始化不能改。
2、final的方法参数,不能改。
3、final的引用,引用指向不能改,但是对象的属性可以改。

final不能用来修饰构造方法。

使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。

final, finally, finalize的区别:

final: 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

内部类要访问局部变量,局部变量必须定义成final类型

finally:是异常处理语句结构的一部分,是异常的统一出口,表示总是执行。
finalize:是Object类的一个方法,在垃圾收集器执行的时候会调用被回收
对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,
例如关闭文件等。JVM不保证此方法总被调用。

上一篇下一篇

猜你喜欢

热点阅读