初学Java,匿名内部类(二十)
2014-04-30 11:53
141 查看
匿名类的作用一般是只需要使用一次的类,不需要复用,临时性比较强,C#中同样有匿名类,不过是在C# 3.0才加入
Java的格式很不一样,定义也很不一样
new 父类构造器(实参列表) | 实现接口()
{
//匿名内部类的类体部分
}
匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口.
匿名类不能是抽象类,因为在创建匿名类的时候,会立即创建匿名内部类的对象
匿名类不能定义构造器,因为匿名类没有类名(这个理由,怎么说呢,晕......),但可以使用实例初始化块来代替构造器,在继承一个类的时候也可以拥有和父类相似的构造器
打印出: 购买了一个AGP显卡,花掉了567.8
Java的匿名内部类看起来没有C#简洁灵活,必须为匿名类定义父类或接口
另外匿名内部类要访问的外部类局部变量必须是final修饰的
01.var myVar = new 02.{ 03. field_string = “abcd” 04. field_int = 12; 05.};
Java的格式很不一样,定义也很不一样
new 父类构造器(实参列表) | 实现接口()
{
//匿名内部类的类体部分
}
匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,或实现一个接口.
匿名类不能是抽象类,因为在创建匿名类的时候,会立即创建匿名内部类的对象
匿名类不能定义构造器,因为匿名类没有类名(这个理由,怎么说呢,晕......),但可以使用实例初始化块来代替构造器,在继承一个类的时候也可以拥有和父类相似的构造器
01.public interface Product 02.{ 03. public double getPrice(); 04. public String getName(); 05.}
01.public class TestAnonymous 02.{ 03. public void test(Product p) 04. { 05. System.out.println("购买了一个" + p.getName() + ",花掉了" + p.getPrice()); 06. } 07. public static void main(String[] args) 08. { 09. TestAnonymous ta = new TestAnonymous(); 10. //调用test方法时,需要传入一个Product参数,此处传入其匿名实现类的实例 11. ta.test(new Product() 12. { 13. public double getPrice() 14. { 15. return 567.8; 16. } 17. public String getName() 18. { 19. return "AGP显卡"; 20. } 21. }); 22. } 23.}
打印出: 购买了一个AGP显卡,花掉了567.8
Java的匿名内部类看起来没有C#简洁灵活,必须为匿名类定义父类或接口
另外匿名内部类要访问的外部类局部变量必须是final修饰的
相关文章推荐
- 初学Java,匿名内部类(二十)
- java匿名内部类总结
- java提高篇(九)-----详解匿名内部类
- 关于java匿名内部类参数为什么要用final修饰的问题
- Java复习笔记---小随笔---匿名内部类
- java笔记--匿名内部类和静态内部类的理解和使用
- java中匿名内部类的总结
- Java-匿名内部类
- java 接口、抽象类、具体类、内部类、匿名内部类的区别及它们之间的关系
- 黑马程序员_Java基础[18]_匿名对象、匿名内部类
- java中匿名内部类的匿名构造函数是怎么用的?
- java匿名内部类
- java之匿名内部类中的多态
- java中匿名内部类的使用
- JAVA匿名内部类
- 验证参数传递引发的Java编译错误“No enclosing instance of type XXX is accessible" 及匿名内部类
- Java中的内部类 普通嵌套类 局部内部类 匿名内部类 静态内部类 浅析
- Java 匿名内部类的示例介绍
- java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类
- Java核心内库-线程-使用匿名内部类创建并启动线程