注册 登录
编程论坛 JAVA论坛

抽象类的相关问题

infinite2015 发布于 2015-04-24 14:24, 1003 次点击
import java.util.*;



public abstract class Animal {
    private String name;
    abstract void showInfo();
    abstract void act();
   
}



public class Cat extends Animal {
    void showInfo(){
        System.out.println("我是一只猫,");
    }
    void act(){
        System.out.println("我将表演猫步");
    }
}


public abstract class Dog extends Animal{
    void showInfo(){
        System.out.println("我是一只狗");
    }
    void act(){
        System.out.println("我将表演双脚站立行走!");
    }

}




public abstract class Bird extends Animal {
    void showInfo(){
        System.out.println("我是一只鸟");
    }
    void act(){
        System.out.println("我将表演唱歌");
    }
}


public class zoo {

    public static void main(String[] args) {
        
        
        Cat cat1 =new Cat();
        Bird bird1 =new Bird();//Cannot instantiate the type Bird
        Dog dog1=new Dog();//Cannot instantiate the type Dog
        
    }

}

为什么注释的两行,会出来后面的错误?
8 回复
#2
infinite20152015-04-24 14:39
我已经知道了,是我在Cat和Bird类前加了abstract~
#3
infinite20152015-04-24 16:48
抽象类不能实例化
#4
林月儿2015-04-24 21:05
public abstract class Animal {
    private String name;
    abstract void showInfo();
    abstract void act();   
}

父类作为抽象类内部的抽象方法都已重写不必再声明为抽象类
子类的可以额外定义各自特有的属性和方法来凸出多态特点
建议抽象父类中的属性或方法若要在子类使用或重写
就不要定义为私有类型的
#5
liu2291183512015-04-28 10:34
楼上+1.
#6
luo6195681632015-05-05 09:56
楼上的楼上+1
#7
xuewei61112015-05-12 11:37
你应该对抽象类概念不清楚啊,抽象类是不能实例化的!
#8
zq10627879412015-05-24 12:52
抽象类不能实例化
#9
林月儿2015-05-24 13:05
回复 8楼 zq1062787941
你是说抽象类不能直接实例化吧。。。
虽然是很旧帖我还是说几句吧。下面来个例子。。。
public class shilihua {
    public static void main(String[] args){
        A a=new A(){
            void f(){
                System.out.println("anonymous class");
            }
        };
        a.f();
    }
}
abstract class A{
    abstract void f();
}
这个例子说明,抽象类虽然不能直接实例化,但。。。
楼主结贴吧
1