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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Larno 中级黑马   /  2014-11-6 11:14  /  1895 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程实现:猫和狗都会叫,但猫是喵喵的叫,狗是汪汪的叫?定义一个动物类,在动物类(animal)中有一个叫的抽象方法。 写两个子类,一个猫一个狗,继承自动物类,并实现相应的抽象方法。
package com.itheima;


public class Test9 {


        /**9、 编程实现:猫和狗都会叫,但猫是喵喵的叫,狗是汪汪的叫?
         * 定义一个动物类,在动物类(animal)中有一个叫的抽象方法。
         *  写两个子类,一个猫一个狗,继承自动物类,并实现相应的抽象方法。
         * @param args
         */
        /**动物类
         * @author Administrator
         *
         */
        abstract class Animal{
                public abstract void call();
        }
       
        /**狗类
         * @author Administrator
         *
         */
        class Dog extends Animal{
                public Dog(){}


               
                public void call() {
                        System.out.println("汪汪汪........");
                }
               
        }
        /**猫类
         * @author Administrator
         *
         */
        class Cat extends Animal{
                public Cat(){}


                @Override
                public  void call() {
                        System.out.println("喵喵喵..........");
                }
               
        }
        public static void main(String[] args) {
                //测试
                Animal dog = new Dog();
                dog.call();
               
               


        }


}

这个程序一直有错误 请改正

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

11 个回复

倒序浏览
把Animal Cat Dog这几个类放到Test9类 外边
回复 使用道具 举报 1 0
abstract class Animal{
    public abstract void call();
}

class Dog extends Animal{
        public Dog(){}
    public void call() {
            System.out.println("汪汪汪........");
   }           
}
class Cat extends Animal{
        public Cat(){}
    public  void call() {
            System.out.println("喵喵喵..........");
    }        
}
public class Test9 {
   
    public static void main(String[] args) {
            //测试
           Animal dog = new Dog();
           dog.call();
    }
}

楼主是这样吧。。。。你把抽象类写到主函数里。。。
回复 使用道具 举报
public class Test9 {


        /**9、 编程实现:猫和狗都会叫,但猫是喵喵的叫,狗是汪汪的叫?
         * 定义一个动物类,在动物类(animal)中有一个叫的抽象方法。
         *  写两个子类,一个猫一个狗,继承自动物类,并实现相应的抽象方法。
         * @param args
         */
        /**动物类
         * @author Administrator
         *
         */
        abstract class Animal{
                public abstract void call();
        }
        
        /**狗类
         * @author Administrator
         *
         */
        class Dog extends Animal{
                public Dog(){}


               
                public void call() {
                        System.out.println("汪汪汪........");
                }
               
        }
        /**猫类
         * @author Administrator
         *
         */
        class Cat extends Animal{
                public Cat(){}


                @Override
                public  void call() {
                        System.out.println("喵喵喵..........");
                }
               
        }
        public static void main(String[] args) {
                //测试
                Animal dog = new Dog();//因为Animal 是抽象类 不能够被实例化,也不能引用子类的对象,所以出错了。
                dog.call();
               
               


        }


}
回复 使用道具 举报
Evred 发表于 2014-11-6 12:25
public class Test9 {

怎么改正,我该不出来  帮我把这个给实现了
回复 使用道具 举报
dong53821713 发表于 2014-11-6 12:05
把Animal Cat Dog这几个类放到Test9类 外边

非常感谢   :Q  原来我这么水
回复 使用道具 举报
Evred 中级黑马 2014-11-6 12:42:38
7#
Larno 发表于 2014-11-6 12:36
怎么改正,我该不出来  帮我把这个给实现了

改下主函数里面的对象就ok了。具体如下:
public static void main(String[] args){
      Dog d =new Dog();
      d.call();
      Cat cat =new Cat();
      cat.call();
     
}
回复 使用道具 举报
2楼正解
回复 使用道具 举报
类中写个抽象类,这个可以么?
回复 使用道具 举报
Larno 中级黑马 2014-11-6 15:06:42
10#
OnlyStyle 发表于 2014-11-6 15:01
类中写个抽象类,这个可以么?

不知道,没有大神解答。。。。。。。。。。。。。。。
回复 使用道具 举报
:L好吧,,,加油,楼主。。。
回复 使用道具 举报
Evred 发表于 2014-11-6 12:25
public class Test9 {

Animal dog = new Dog(); 这样写是可以的 建立父类引用指向子类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马