码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-09 22:04:26      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!