什么是抽象方法?
发布网友
发布时间:2023-05-07 06:20
我来回答
共1个回答
热心网友
时间:2024-08-20 09:03
什么是抽象类和抽象方法?
抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。 抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。 抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。 程序举例:abstract class Animal 定义抽象类 abstract void eat(); 定义抽象方法}class Horse extends Animal 定义继承Animal的子类 void eat() 重写父类的抽象方法 }class Dog extends Animal void eat() }class test}运行结果: 马吃草料! 狗吃骨头!
什么叫JAVA的抽象方法?
抽象方法定义在抽象类或接口中,它只有方法的声明没有实现例如;
public abstract class AAA{
public abstract voi弧 test();
}
上面的test方法就是抽象方法,他后面直接写一个;号不能带{}
抽象类和抽象方法起什么作用
实现多态啊..
最简单的一个作用,实现模板.
所有继承抽象类的子类,必须强制实现抽象类的抽象方法.如果没有抽象方法,则子类可有,可没有该方法.定义一个抽象方法后,所有子类就必须实现了.
另外,抽象类通常用于指向子类的实例场
比如:
抽象类 实例 = new 子类();
实例.抽象方法();
如果你不定义抽象方法,如何使用子类的方法呢??
Java中什么叫做抽象方法只需声明,而不需实现?
实现是针对其子类:例如
public abstract class Father{
只申明,不实现
public abstract void show();
}
public class Child extends Father{
实现
public void show{
System.out.println("show method!");
}
}
实现了方法,不觉得么?
你看父类的方法
public abstract void show();
只是做了声明,并没有方法体。
在其子类中:
public void show{
System.out.println("show method!");
}
实现了方法内部功能,我只是输出一句话,当然你可以做其他功能。
抽象方法和类是拿来干什么
(关键字abstract)抽象类是为继承而定义的,抽象类中不一定有抽象方法,但有抽象方法一定是抽象类。
抽象类中可以定义构造函数,但是不能使用关键字new 创建其对象。
如果某个类继承于抽象类,应将父类的抽象方法都覆盖,否则子类也是一个抽象类。覆盖实现则可以创建子类的对象。
静态方法和final方法都不能声明为抽象。
数据抽象方法的定义
数据类型是和数据结构密切相关的一个概念。它最早出现在高级程序设计语言中,用以刻划程序中操作对象的特性。在用高级语言编写的程序中,每个变量、常量或表达式都有一个它所属的确定的数据类型。类型显式地或隐含地规定了在程序执行期间变量或表达式所有可能的取值范围,以及在这些值上允许进行的操作。因此,数据类型(DataType)是一个值的 *** 和定义在这个值集上的一组操作的总称。 在高级程序设计语言中,数据类型可分为两类:一类是原子类型,另一类则是结构类型。原子类型的值是不可分解的。如C语言中整型、字符型、浮点型、双精度型等基本类型,分别用保留字int、char、float、double标识。而结构类型的值是由若干成分按某种结构组成的,因此是可分解的,并且它的成分可以是非结构的,也可以是结构的。例如,数组的值由若干分量组成,每个分量可以是整数,也可以是数组等。在某种意义上,数据结构可以看成是“一组具有相同结构的值”,而数据类型则可被看成是由一种数据结构和定义在其上的一组操作所组成的。 抽象数据类型 抽象数据类型(AbstructDataType,简称ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。 抽象数据类型和数据类型实质上是一个概念。例如,各种计算机都拥有的整数类型就是一个抽象数据类型,尽管它们在不同处理器上的实现方法可以不同,但由于其定义的数学特性相同,在用户看来都是相同的。因此,“抽象”的意义在于数据类型的数学抽象特性。 但在另一方面,抽象数据类型的范畴更广,它不再局限于前述各处理器中已定义并实现的数据类型,还包括用户在设计软件系统时自己定义的数据类型。为了提高软件的重用性,在近代程序设计方法学中,要求在构成软件系统的每个相对独立的模块上,定义一组数据和施于这些数据上的一组操作,并在模块的内部给出这些数据的表示及其操作的细节,而在模块的外部使用的只是抽象的数据及抽象的操作。这也就是面向对象的程序设计方法。 抽象数据类型的定义可以由一种数据结构和定义在其上的一组操作组成,而数据结构又包括数据元素及元素间的关系,因此抽象数据类型一般可以由元素、关系及操作三种要素来定义。 抽象数据类型的特征是使用与实现相分离,实行封装和信息隐蔽。就是说,在抽象数据类型设计时,把类型的定义与其实现分离开来。
Java父类中抽象方法有什么用?
楼主好好把继承和多态的概念理解下吧!
继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物的共性。
多态,把子类对象主观的看作是其父类型的对象,那么父类型就可以是很多种类型。
例如父类Person(人) 子类 Students(学生) 子类Teacher(教师)
珐类中有抽象方法 void work();子类分别实现
Person p1 = new Student();
Person p2 = new Teacher();
p1.work();
p2.work();
楼主自己试下什么结果!
如果你父类中不定义抽象方法或方法的话,你看看 还能够p1.work();这样调用吗?答案是否定的。
抽象类中的方法都必须是什么
1.抽象类与抽象方法的关系是:抽象方法必须在抽象类中,如果抽象方法不在抽象类中,则会编译报错,这个是规定的。
2.抽象类中的方法不一定要必须是抽象方法,可以有抽象方法,和非抽象方法。其中非抽象方法,往往都是抽象类的所有子类所具有的,而抽象方法则由具体的不同子类实现不同的方法
所以综上所述,这句话是错误的。
另外题外话。我是这么理解抽象类的。
水果就是一个抽象类。如果我叫你拿出一个水果的实例,对象出来,你肯定拿不出一个叫水果的实例,对象。你只是能拿出比如苹果,香蕉等水果的子类实例。
水果中的非抽象方法类似于苹果,香蕉都有皮,都有水(所以这些不用我们去实现)
抽象方法为:水果的形状(所以我们就要在苹果,香蕉中实现不同的形状方法)
纯手打~~忘采纳
java抽象类中没有抽象方法有什么用
就是单纯的不想让你创建这个类的实例,所以就把这个类给抽象起来。
Java怎么构建抽象类,抽象类的概念是什么?
普通类就是一个完善的功能类,可以直接产生对象并且可以使用,里面的方法都是带有方法体的,
而抽象类之中最大的特点是包含了抽象方法,而抽象方法是只声明而未实现(没有方法体)的方法,
而抽象方法定义的时候要使用abstract关键字完成,而抽象方法一定要在抽象类之中。
抽象类要使用abstract关键字声明。
范例:定义一个抽象类
abstract class A {
private String = "Hello World" ;
public void print() {
System.out.println() ;
}
public abstract void get() ; 只声明没有方法体
}