黑马程序员技术交流社区

标题: 同学去面试实习生时候的笔试题 [打印本页]

作者: 夏一站    时间: 2013-6-14 18:24
标题: 同学去面试实习生时候的笔试题
1.定义一个包含name,age和like 属性的person类,实例化并给对象赋值,然后输出对象属性。

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

大家踊跃来试一试啊。
作者: 知行    时间: 2013-6-14 22:55
第二个  是不是 父类引用子类,然后 面向接口编程。  是不是两种形式的多态呢
作者: 苑永志    时间: 2013-6-14 23:26
本帖最后由 苑永志 于 2013-6-14 23:35 编辑

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

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






作者: shiweiCao    时间: 2013-6-15 00:26
第一个我没理解错的话,是不是提供有参构造,
然后实例化的时候直接就赋值并打印值, 是这样么?
第二个,两种形式应该是 继承与实现.  
1、父类 对象=new 子类();这个又包括转型,还有好多细节
2、接口 对象=new 实现类();
在这说下集成的关键字为extends
而实现接口是implements;
其中实现的步骤还是有些区别的,这需要你多看看实现的资料了 ,一起加油!!
作者: wh963572516    时间: 2014-1-16 13:14
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>第二个题目
多态的两种表现形式:方法的重载和方法的重写





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