1.final:最终的、不可改变的------单独应用的机率小
1)修饰变量:变量不能被改变
2)修饰方法:方法不能被重写
3)修饰类:类不能被继承
2.static final:常量,应用率高
1)必须声明同时初始化
2)通过类名点来访问,不能被改变
3)建议:常量名所有字母都大写,多个单词用_分隔
4)编译器在编译时直接将常量替换为具体的值,效率高
3.抽象方法:
1)由abstract修饰
2)只有方法的定义,没有方法具体的实现(连{}都没有)
4.抽象类:
1)由abstract修饰
2)包含抽象方法的类必须是抽象类,不包含抽象方法的类也可以声明为抽象类-----我乐意
3)抽象类不能被实例化
4)抽象类是需要被继承的,子类:
4.1)重写所有抽象方法--------一般常规的用法
4.2)也声明为抽象类----------不常用
5)抽象类的意义:
5.1)封装子类共有的属性和行为-------------代码复用
5.2)为所有子类提供一种统一的类型---------向上造型
5.3)可以包含抽象方法,为所有子类提供统一的入口每个子类的实现不同,但入口是一致的
5.接口:
类和类-----------------继承extends
接口和接口-------------继承extends
类和接口---------------实现implements
1)是一个标准、规范------------制定方
遵守了这个标准,就能干某件事------------API后
2)接口是一种数据类型(引用类型)
3)由interface定义
4)只能包含常量和抽象方法
5)接口不能被实例化
6)接口是需要被实现的,实现类: 必须重写接口中的所有抽象方法
7)一个类可以实现多个接口,用逗号隔开,若又继承又实现时,应先继承后实现
8)接口可以继承接口
接口是完全抽象的抽象类-----正确的
示例:
new Inter1(); //编译错误
Inter1 o1; //正确
interface Inter1{
public static final int NUM = 5;
public abstract void show();
int COUNT = 5; //默认public static final
void test(); //默认public abstract
double PI; //编译错误,常量必须声明同时初始化
void say(){} //编译错误,抽象方法不能有方法体
}
我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!
更多精彩以后更新,转载注明!