JAVA编程时声明抽象类和抽象方法是基于什么目的,有什么用呢,可以说详细一点不?谢谢了

如题所述

抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。
抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。
对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。
当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。

在抽象类中的成员方法可以包括一般方法和抽象方法。
抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。
当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。

抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。
抽象类本身不具备实际的功能,只能用于派生其子类。
抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。

抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。
abstract不能与private、static、final、native并列修饰同一个方法。

abstract class Animal //定义抽象类

{
String str;

Animal(String s) //定义抽象类的一般方法
{
str=s;
}

abstract void eat(); //定义抽象方法
}

class Horse extends Animal //定义继承Animal的子类
{
String str;

Horse(String s)
{
super(s); //调用父类的构造方法
}

void eat() //重写父类的抽象方法
{
System.out.println("马吃草料!");
}
}

class Dog extends Animal
{
String str;

Dog(String s)
{
super(s);
}

void eat()
{
System.out.println("狗吃骨头!");
}
}

class test
{
public static void main(String args[])
{
Horse Horse1 = new Horse("马");

Dog Dog1 = new Dog("狗");
Horse1.eat();
Dog1.eat();

}

}

运行结果:

马吃草料!
狗吃骨头!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
抽象类作为父类用于继承,让子类去实现父类没有的属性或者说具体化
如果一个类有抽象方法,那么该类必须声明为抽象类 ;只有继承抽象类的子类才可以去调用,目的还是具体化
第2个回答  2012-04-19
含有抽象方法的类必须被声明为抽象类,
JAVA API (JAVA应用程序接口)中最上层为接口,一般用抽象类去继承这个接口,接口只是定义方法,不去实现。而抽象类将我们不需要重写的方法已经实现好了,我们只需要写一个类去继承这个抽象类,然后实现这个抽象类的抽象方法即可。
你学到后面就知道,我们使用API(包括J2SE和J2EE)一般不直接去继承接口,而是去继承已经继承了这个接口的抽象类。只是一套标准而已。
第3个回答  2012-04-19
看你两级。我就告诉你吧,其实我是为积分来的,不要说我太俗!~~
=========
抽象类和抽象方法一般是目的是为一系列类似的东西当基类的!
比方说电视机,有显示器,可以发出声音。那么发出声音和播放就可以是抽象方法,这个电视机就是个抽象类(比较公共的部分吧,我是这么理解的)
这里有个彩色电视机,有具体的方法和参数,如有明确的显示器的类型lcd,led之类的,等等,
其实面向对象的都是一个样的,
之前看孙鑫的教程里边说的很清楚,
这里介绍下他的例子吧,
动物是个总体的类,那么我们可以建立一个关于动物的抽象类。抽象的方法有,吃,拉,呼吸!
那么不同的动物都可以吧这个当基类,如鱼,吃拉呼吸,和猫的吃拉,呼吸都不一样!本回答被提问者采纳
相似回答