如果我没有创建任何抽象abstract
,那么使用method()
类,那么抽象类的含义是什么。在应用程序中抽象类的目的是什么,或者在这种情况下,抽象类和Java中的普通类有什么区别?
我们如何创建一个object
抽象类?
答案 0 :(得分:2)
抽象类允许您添加基本行为,因此程序员不必编写所有代码,同时仍然强制他们遵循您的设计。
抽象类的主要目标是提供共同行为的共享实现 - 促进代码的重用。
abstract class
可以用作基础classes
,可以subclasses
进行扩展,以便在实际实施时使用。
以下是abstract class
用法的一个很好的例子:
public abstract AbstractFlow{
public void initialStep() {
//implementation directly in abstract superclass
}
public abstract void implement(); // implemented by subclasses
public void afterAction() {
//implementation directly in abstract superclass
}
}
它是使用它的其他类的模板。
如果我们可以考虑一个实例:
Abtract Class Cricket
包括20-20, Test, One Day
在内的所有形式的Cricket都是具体的类,其基本功能已经实现。
在极少数情况下,类也可以是抽象的,没有任何方法是抽象的。
答案 1 :(得分:1)
您无法实例化抽象类,换句话说,如果您有......
abstract class MyAbstractClass() { ... }
......你不能做以下事情......
MyAbstractClass object = new MyAbstractClass();
虽然您可以使用私有构造函数获得相同的结果,但是使用抽象类,您仍然可以使用其他类来扩展抽象类,然后CAN(可能)实例化。
这种类似的用法是使用抽象基类。例如,假设您可能想要存储有关汽车和摩托车的数据。然后,您的类Vehicle
和Car
可能会有一个公共基类Motorcycle
。即使Vehicle
没有任何抽象方法,你也许不希望任何人创建一个纯粹的" Vehicle"对象,但只有Car
和Motorcycle
个对象。因此,您可以使您的Vehicle类抽象化并完全获得它。
答案 2 :(得分:1)
的定义如果我不创建任何抽象方法(),那么使用Abstract类则抽象类的含义是什么。
抽象类是一个声明为abstract的类 - 它可能包含也可能不包含抽象方法。
那么抽象类在应用程序中使用的目的是什么?在那种情况下,抽象类和java中的普通类有什么区别?
抽象类无法实例化,但可以进行子类化。
答案 3 :(得分:1)
抽象类对于为一组类定义公共方法和属性非常有用。我试着举个例子:
想象一下,您正在设计一个管理员工或某个公司的任何应用程序的应用程序。您将拥有不同类型的用户:
即使它们具有不同的特征,也有许多常见的属性,如名称,ID,年龄等。按照这个思路,我们定义了一个超类用户:
public class User {
public String name;
public int age;
public String id;
public User(String name, int age, String id) {
this.name = name;
this.age = age;
this.id = id;
}
//here would be the getters and setters
}
现在,其他类将被声明为此User类的扩展(请检查java heritance out。)
public class Employee extends User{//define specific methods}
public class Manager extends User{//as above}
//and so on...
现在,虽然您希望用户的所有这些子类型继承公共和属性,您不想创建用户本身,但您并不希望任何人属于键入User,只显示类的子类型。因此,您不希望实例化用户,这就是使用关键字 abstract 的原因。
通过将User类声明更改为abstract,您告诉您不希望实例化此类并阻止具有User类型的用户,从而保证您创建的唯一用户是Employee,主任等:
public abstract class User {}