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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夏一站 中级黑马   /  2013-6-14 18:24  /  1934 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.定义一个包含name,age和like 属性的person类,实例化并给对象赋值,然后输出对象属性。

2.简述java中两种形式的多态。

大家踊跃来试一试啊。

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
第二个  是不是 父类引用子类,然后 面向接口编程。  是不是两种形式的多态呢
回复 使用道具 举报
本帖最后由 苑永志 于 2013-6-14 23:35 编辑

有编译时多态和运行时多态。
方法的重载就是编译时多态,因为编译时就能根据参数类型确定给定方法名是该调用重载方法的哪一个。

父类方法的重写(或者接口方法的实现)则是运行时多态,
比如父类Person,他有方法doSomthing(),并有一个继承它的类Student,执行代码Person p = new Student();p.doSomething();
在编译时,仅仅根据对象p所属的类及其子类类型确定编译的正确性,并不能确定最终会执行哪个doSomething()方法,这分为两种情况:若Student重写覆盖了父类Person的方法,在执行Student的doSomething方法,否则执行Person中的该方法。





回复 使用道具 举报
第一个我没理解错的话,是不是提供有参构造,
然后实例化的时候直接就赋值并打印值, 是这样么?
第二个,两种形式应该是 继承与实现.  
1、父类 对象=new 子类();这个又包括转型,还有好多细节
2、接口 对象=new 实现类();
在这说下集成的关键字为extends
而实现接口是implements;
其中实现的步骤还是有些区别的,这需要你多看看实现的资料了 ,一起加油!!
回复 使用道具 举报
1>第一个题目
public class TestPerson
{
        public static void main(String args[]){
                Person p1 = new Person("李三",21,"编程");
                Person p2 = new Person("张五",22,"java");
                p1.getInfo();
                p2.getInfo();
        }
}
class Person
{
        private String name;  //姓名
        private int age;          //年龄
        private String like;  //爱好

        public Person(){}    //无参构造方法

        public Person(String name,int age,String like){
                this.name = name;
                this.age = age;
                this.like = like;
        }
       
        //取得姓名
        public String getName(){
                return name;
        }
       
        //取得年龄
        public int getAge(){
                return age;
        }

        //取得爱好
        public String getLike(){
                return like;
        }

        public void getInfo(){
                System.out.println("姓名:"+name+"\t年龄:"+age+"\t爱好:"+like);
        }
}

2>第二个题目
多态的两种表现形式:方法的重载和方法的重写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马