定义一个没有任何抽象方法的抽象类
我可以在不添加抽象方法的情况下定义抽象类吗?
当然。
声明一个类的抽象只意味着你不允许它自己实例化。
声明方法摘要意味着子类必须为该方法提供一个实现。
两者是不同的概念,但显然你不能在非抽象类中有一个抽象方法。 你甚至可以用final
方法来抽象类,但从来没有其他的方法。
是的,你可以做到这一点。 你为什么不试试呢?
是的你可以。 在java中使用的抽象类表示你不能创build类的对象。 而抽象方法的子类必须为该方法提供一个实现。
所以你可以很容易地定义一个抽象类,而不用任何抽象方法
例如:
public abstract class AbstractClass{ public String nonAbstractMethodOne(String param1,String param2){ String param = param1 + param2; return param; } public static void nonAbstractMethodTwo(String param){ System.out.println("Value of param is "+param); } }
这可以。
是的,你可以声明一个类,你不能只用已经有实现的方法来自己实例化。 如果你想在将来添加抽象方法,或者如果你不想直接实例化这个类,即使它没有抽象属性,这也是有用的。
是的你可以用抽象方法创build抽象类,抽象类没有抽象方法的最好的例子是HttpServlet
抽象方法是一个没有主体的方法,如果你在类中至less声明了一个方法,那么这个类必须被声明为一个抽象的强制性的BUT,如果你声明这个抽象类不是强制性的,就不能在类中声明这个抽象方法。
你不能创build抽象类的对象,这意味着它不能被实例化。
是的,我们可以有一个没有抽象方法的抽象类,因为它们都是独立的概念 声明一个类的抽象意味着它不能被实例化,只能被分类。 声明方法抽象意味着Method将在子类中定义。
是的,你可以定义一个没有抽象方法的抽象类。 但是,如果里面没有任何方法,最好使用一个接口
是的,你可以这么做。
声明类抽象意味着类将不会被任何其他类实例化。
并且至less应该有一个抽象方法,在那里你可以在那个类中声明抽象方法,如果你不是声明方法的话。
例:
public abstract class abs { protected int cx = 0, cy = 0; public void p() { System.out.print("hello"); } }
这将工作肯定。
是的,我们可以在没有任何抽象方法的情况下声明一个抽象类。 将类声明为抽象的目的不是实例化类。
所以两个例子
1)抽象类与抽象方法。
这些类的types,我们必须从这个抽象类inheritance一个类,并且必须覆盖我们类中的抽象方法,例如:GenricServlet类
2)没有抽象方法的抽象类。
这些类的types,我们必须从这个抽象类inheritance一个类,例如:HttpServlet类的目的是尽pipe你如果不在你的子类中实现你的逻辑,你可以得到父逻辑
请检查HttpServlet源代码
是的你可以。 有时你可能会问这个问题,这样做的目的是什么? 答案是:有时我们必须限制类从自己的实例化。 在这种情况下,我们希望用户扩展我们的Abstract类并实例化子类