黑马程序员技术交流社区

标题: 匿名对象可以调用对象的属性吗? [打印本页]

作者: 漠然~回首℃    时间: 2014-3-2 21:56
标题: 匿名对象可以调用对象的属性吗?
匿名对象可不可以调用对象的属性?原因是什么举例说明一下?谢谢大虾
作者: Amorvos    时间: 2014-3-2 22:14
匿名对象,你是说直接创建一个接口的实例,还是说,匿名内部类对象啊?
接口里只有静态常量,你这个对象属性哪来的?
匿名内部类也没有所谓的对象属性呀。
PS:
     我不是大神,这是我想的答案
作者: 榨菜    时间: 2014-3-2 22:20
我觉得匿名对象就是一个类的子类,   既然继承了父类,那就可以调用父类中的属性。
作者: 榨菜    时间: 2014-3-2 22:26
  1. public class Test {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                
  7.                 String str = new Demo(){   //创建Demo的子类 匿名类
  8.                         //子类中复写toString
  9.                         public String toString(){
  10.                                 i = 6;  //继承Demo中的i进行赋值
  11.                                 return "我是匿名对象:"+i;
  12.                         }
  13.                 }.toString();
  14.                
  15.                 System.out.println(str);
  16.         }
  17.        
  18. }

  19. class Demo{
  20.         public int i;  //对象的属性
  21.        
  22. }
复制代码

作者: 天凌蓝    时间: 2014-3-2 22:32
父类创建的子类匿名对象,可以调用子类继承覆写父类方法,但不能调用子类本身特有的方法
作者: 遗忘的青春年华    时间: 2014-3-2 23:51
String str = new Demo(){   //创建Demo的子类 匿名类     是父类引用指向子类对象,
new Demo(){   
              复写父类方法     
                     }   //而此时整个new Demo(){}相当于一个对象,是可以调用父类的和子类的共有方法的,而子类的特有方法必须要子类向下转型才可以调用
比如: Demo d = (Demo) str;
                d.show();//show()是子类特有的方法,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2