A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

匿名对象可不可以调用对象的属性?原因是什么举例说明一下?谢谢大虾

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
匿名对象,你是说直接创建一个接口的实例,还是说,匿名内部类对象啊?
接口里只有静态常量,你这个对象属性哪来的?
匿名内部类也没有所谓的对象属性呀。
PS:
     我不是大神,这是我想的答案

评分

参与人数 1黑马币 +5 收起 理由
何伟超 + 5

查看全部评分

回复 使用道具 举报
我觉得匿名对象就是一个类的子类,   既然继承了父类,那就可以调用父类中的属性。
回复 使用道具 举报
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
父类创建的子类匿名对象,可以调用子类继承覆写父类方法,但不能调用子类本身特有的方法
回复 使用道具 举报
String str = new Demo(){   //创建Demo的子类 匿名类     是父类引用指向子类对象,
new Demo(){   
              复写父类方法     
                     }   //而此时整个new Demo(){}相当于一个对象,是可以调用父类的和子类的共有方法的,而子类的特有方法必须要子类向下转型才可以调用
比如: Demo d = (Demo) str;
                d.show();//show()是子类特有的方法,

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马