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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1871037345 高级黑马   /  2016-7-24 11:15  /  3207 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

6黑马币
本帖最后由 1871037345 于 2016-7-24 12:59 编辑

做这种题目少,没经验,希望大神带我分析一下,学习一下思路。

* 用面向对象的思想:(OC语言)
* 1,设计三个类,分别为Video,MoviesVideo 和 StudyVideo;
*   Video中有视频的名称name和视频的时长time两个属性,有一个看视频的对象方法lookVideo;
* 2,设计一个视频管理者VideoManager对象,里面有一个playVideo的类方法,播放视频的操作由VideoManager来完成;
* 要求:
* 1,使用VideoManager播放视频时,
     传StudyVideo,就调用StudyVideo中的看视频的方法;
     传MoviesVideo,就调用MoviesVideo中的看视频的方法;
2,调用lookVideo方法时,打印出视频的名称和时长;

最佳答案

查看完整内容

楼主记得采纳哈. 1、这个问题首先是MoviesVideo 和 StudyVideo均继承自Video,就是说Video是他们的父类。 2、VideoManager类中playVideo()方法的形式参数需要定义为Video类型,就是要运用多态来解决问题。 具体代码可以参考一下我的: public class lianxi10 { public static void main(String[] args) { MoviesVideo mv = new MoviesVideo("动漫","1:40"); VideoManager.playVideo(mv); StudyVideo sv = new StudyVide ...

7 个回复

倒序浏览
楼主记得采纳哈.
1、这个问题首先是MoviesVideo 和 StudyVideo均继承自Video,就是说Video是他们的父类。
2、VideoManager类中playVideo()方法的形式参数需要定义为Video类型,就是要运用多态来解决问题。
具体代码可以参考一下我的:
public class lianxi10 {
        public static void main(String[] args) {
                MoviesVideo mv = new MoviesVideo("动漫","1:40");
                VideoManager.playVideo(mv);
               
                StudyVideo sv = new StudyVideo("电影","2:25");
                VideoManager.playVideo(sv);
        }
}

class Video {
        private String name;
        private String time;
       
        public Video() {};
       
        public Video(String name,String time) {
                this.name = name;
                this.time = time;
        }
       
        public void lookVideo() {
                System.out.println("name = " + name);
                System.out.println("time = " + time);
        }
}

class MoviesVideo extends Video {
        public MoviesVideo() {}
       
        public MoviesVideo(String name,String time){
                super(name,time);
        }
       
        public void lookVideo() {
                System.out.println("使用MoviesVideo中看视频的方法");
                super.lookVideo();
        }
}

class StudyVideo extends Video {
        public StudyVideo() {}
       
        public StudyVideo(String name,String time){
                super(name,time);
        }
       
        public void lookVideo() {
                System.out.println("使用StudyVideo中看视频的方法");
                super.lookVideo();
        }
}

class VideoManager {
        private VideoManager() {}
       
        public static void playVideo(Video v) {
                v.lookVideo();
        }
}
回复 使用道具 举报
这是面试题吗?你是哪个方向?
回复 使用道具 举报
我是选 iOS
回复 使用道具 举报
jundehuang 发表于 2016-7-24 11:42
这是面试题吗?你是哪个方向?

我选的是--》iOS
回复 使用道具 举报

好吧。。。
回复 使用道具 举报
额,尴尬了,我这是java的代码,不知道对你有没有帮助
回复 使用道具 举报
谢谢,有上面两句话就够了,问题已经解决,其实后来问过那位老师,他只提示了一句话,“从面向对象的特征去思考”,瞬间明白了,不知道是当时脑子短路,还是脑子里根本没有建立面向对象的思想,以后得多锻炼一下提取信息分析能力。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马