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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵太云 中级黑马   /  2013-1-13 19:54  /  2125 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冯海霞 于 2013-1-16 10:43 编辑

      以下是查java 的API里面的解释:
                   类Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
         Object是一个类,为什么这里要说是实现而不说继承或重写呢?  实现不是用于描述接口的吗?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

8 个回复

倒序浏览
那你首先要搞清楚实现和继承的区别!
继承:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。Object就是从所有的类中提炼出来的一个类,把共性的方法定义在里面!
实现:如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们的实现这个接口,各自实现自己具体的处理方法来处理那个目标

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
ying 发表于 2013-1-13 20:06
那你首先要搞清楚实现和继承的区别!
继承:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来, ...

还是不明白。……。…………
回复 使用道具 举报
其实上这就是类加载体系结构,Object中的很多方法都是native的,通过jni调用本地c语言函数库来实现
LZ,所有对象(包括数组)都实现这个类的方法,你常常写的java程序就是Object的子类,一旦执行主线程main()直接加载到解释器上面了
继承?Object是根类,难道它还有父类? java的API 中的所有类都是Object的子类,这就是类继承加载结构,LZ不懂?Object的子类完全可以重写
Object运行类的方法,例如 toString() 打印对象堆区的数据
class A{
  private int a;
  private String b;
  A(int a,String b){
    this.setA(a);
    this.setB(b);
  }
protected void setA(int a){
  this.a=a;
}
protected int getA(){
  return a;
}
protected void setB(String b){
   this.b=b;
}
protected String getB(){
  return b;
}
public String toString(){          //重写Object的toString() 方法
  return  this.getA()+","+this.getB();
}
}

实现接口 完全可以啊,知道解耦么?
Object的clone() 方法没实现接口 ,子类要实现克隆,该类的对象 原始类必须实现 Cloneable接口

class Person  implements Cloneable{
   ......                  // 这里就不写了,LZ应该懂滴
  }
pulic class Test{
   public static void main(String[] args){
     Person p1=new Person();
     Person p2=p1.getClass().Clone();   //注意  p1!=p1.getClass().Clone()   p2.getClass()==p1.getClass()
}
}



评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵太云 于 2013-1-13 20:42 编辑
赵文 发表于 2013-1-13 20:19
其实上这就是类加载体系结构,Object中的很多方法都是native的,通过jni调用本地c语言函数库来实现
LZ,所 ...


还是不知道.......................................................
回复 使用道具 举报
赵太云 发表于 2013-1-13 20:21
还是不知道.......................................................

:L........
回复 使用道具 举报
看了一下源码和英文的API说明,觉得用“实现”这个词不是很适合,因为在类中没有abstract方法。应该用“继承或覆写”来代替比较好

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
围观好了。。   
回复 使用道具 举报
1.首先object是所有类的一个根类,不是接口。
2.不用在意语言表述问题,例如,类中的方法我们可以叫做函数。只要我们理解了,想怎么叫它都行。
3.继承或重写表达比较片面,还不如直接用实现。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

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