1.final 参考博文:http://lavasoft.blog.51cto.com/62575/18771/java
根据程序上下文环境,Java关键字final有“这是没法改变的”或者“终态的”含义,它能够修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而须要阻止改变:设计或效率。工具
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但能够被继承。
final成员变量表示常量,只能被赋值一次,赋值后值再也不改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,而且是不可继承的。spa
public class Testfinal { public final void print(final String abc) { System.out.println(abc); abc="898";/***不能够改变**/ } public static void main(String[] args) { //Testfinal a = new B(); //a.print(); B b = new B(); b.print("456"); b.print("789"); }
2.public abstract interface与public interface 区别.net
interface自己就已是abstract的了,因此interface和abstract interface从语意上没有任何区别。出现这种用法,有种多是使用了反编译工具查看jar包的源码时看到abstract interface这一语法的,其实这只是interface的完整表述而已,楼主能够看看jar包的源码文件,应该是没有abstract这个关键字的。
3.匿名内部类设计
3.一、引言code
public abstract interface Runnable/***接口**/ { public abstract void run(); } /***匿名类实例化**/ new Runnable() { public void run() { acc.deposit(100.0f); acc.withdraw(100.0f); } };
3.2.匿名内部类(Anonymous Inner Class) 对象
参考博文:http://blog.csdn.net/haobo920/article/details/5777476blog
在类及其方法中,能够定义一种匿名类,匿名类有如下几个特色。
(1)这种类不取名字,而直接用其父类的名字或者它所实现的接口的名字。
(2)类的定义与建立该类的一个实例同时进行,即类的定义前面有一个new。不使用
关键词class,同时带上()表示建立对象。也就是说,匿名类的定义方法是:
new 类名或接口名() { ……… }
(3)类名前面不能有修饰符。
(4)类中不能定义构造方法,由于它没有名字。也正是这个缘由,在构造对象时,也
不能带参数,由于默认构造方法不能带参数。继承