标签:
1.final 参考博文:http://lavasoft.blog.51cto.com/62575/18771/
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:父类的private成员方法是不能被子类方法覆盖的,并且是不可继承的。
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 区别
interface本身就已经是abstract的了,所以interface和abstract interface从语意上没有任何区别。出现这种用法,有种可能是使用了反编译工具查看jar包的源码时看到abstract interface这一语法的,其实这只是interface的完整表述而已,楼主可以看看jar包的源码文件,应该是没有abstract这个关键字的。
3.匿名内部类
3.1、引言
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/5777476
在类及其方法中,可以定义一种匿名类,匿名类有以下几个特点。
(1)这种类不取名字,而直接用其父类的名字或者它所实现的接口的名字。
(2)类的定义与创建该类的一个实例同时进行,即类的定义前面有一个new。不使用
关键词class,同时带上()表示创建对象。也就是说,匿名类的定义方法是:
new 类名或接口名() { ……… }
(3)类名前面不能有修饰符。
(4)类中不能定义构造方法,因为它没有名字。也正是这个原因,在构造对象时,也
不能带参数,因为默认构造方法不能带参数。
final和synchronized和public abstract interface和匿名内部类
标签:
原文地址:http://my.oschina.net/u/2308739/blog/398284