黑马程序员技术交流社区

标题: 关于多态的表现形式? [打印本页]

作者: 王峰230321    时间: 2013-7-9 12:21
标题: 关于多态的表现形式?
本帖最后由 王峰230321 于 2013-7-9 15:00 编辑

今天学到 多线程的时候 突然想起来的, 直接敲代码吧

class Test extends Thread
{
       public void run()
      {
           System.out.println("xxxxx")
      }

}

class Doem
{
      public sataic void main(string[] args)
      {
              Test t1=new Test();
              t1.run();
      }
}
我想知道 ,  在创建新对象。  t1的时候、  创建 Test的 和创建父类的 有什么区别?,  
假如说 Test继承的是一个接口 ,Test也重写了接口所有的的方法,  那么
接口名.t1=new Test(); 和 Test t1=new Test();  有什么区别?使用方法之类的 是否会不一样?

作者: denghui1010    时间: 2013-7-9 12:35
父类不能调用子类特有方法
作者: 王峰230321    时间: 2013-7-9 12:40
denghui1010 发表于 2013-7-9 12:35
父类不能调用子类特有方法

但是new的是子类啊,    new一个子类 还不能调用子类的方法?
作者: denghui1010    时间: 2013-7-9 12:50
Person x = new Student();
x不能调用Student的特有方法

作者: 草貌路飞    时间: 2013-7-9 12:54
不可以的,如果你只用父类或者接口的方法,那两种方法创建都一样,如果要用到子类的方法就不能用父类或者接口的引用。比如说Object类是所有类的根类,你所有类都可以用Object类的引用来代表,但你不可能用Object类的引用去调用你创建的类的方法吧,Object类不可能知道所有类的方法。所以只能用Object类自己有的方法而已
作者: 王峰230321    时间: 2013-7-9 13:04
应该是明白了。  谢谢。  




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