final和synchronized和public abstract interface和匿名内部类

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)类中不能定义构造方法,由于它没有名字。也正是这个缘由,在构造对象时,也
不能带参数,由于默认构造方法不能带参数。继承

相关文章
相关标签/搜索