日期:2014-05-20  浏览次数:20746 次

什么是抽象类?
抽象类是不是有的方法是没有方法体的?
比如:
abstract void eat();

但是,今天去看了一下java的源码,发现WindowAdapter是抽象类,但是它的所有方法都是有空方法体的,这个也是抽象类吗?烦请高手解释一下。肯定是我的理解出现问题了
源码如下

public abstract class WindowAdapter
    implements WindowListener, WindowStateListener, WindowFocusListener
{
    public void windowOpened(WindowEvent e) {}

     public void windowClosing(WindowEvent e) {}

    public void windowClosed(WindowEvent e) {}

    public void windowIconified(WindowEvent e) {}

    public void windowDeiconified(WindowEvent e) {}

    public void windowActivated(WindowEvent e) {}

    public void windowDeactivated(WindowEvent e) {}

    public void windowStateChanged(WindowEvent e) {}

    public void windowGainedFocus(WindowEvent e) {}

    public void windowLostFocus(WindowEvent e) {}
}




------最佳解决方案--------------------
抽象类是可以有私有方法或私有变量的。。。。

引用:
抽象类是不是有的方法是没有方法体的?
比如:
Java code?1abstract void eat();
但是,今天去看了一下java的源码,发现WindowAdapter是抽象类,但是它的所有方法都是有空方法体的,这个也是抽象类吗?烦请高手解释一下。肯定是我的理解出现问题了
源码如下
Java code?12345678910111213141516171……


public的 当然也可以有。。。。

这个最好 对比一下接口的概念。。
http://blog.csdn.net/duanml61/article/details/8133258

我写的应该还算易理解吧。。。

------其他解决方案--------------------
大家一起努力加油
------其他解决方案--------------------
没有抽象方法的类,也可以定义成抽象类. 其目的就是不允许(或不需要)生成这个类的实例(不能new 出对象)。
比如一个类只有静态方法和静态属性,(这些都部需要实例来访问,)定义成抽象的也可以。
public abstract class TestHelloWorld//定义成抽象类也能运行。
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}

------其他解决方案--------------------
抽象类中的方法可以加abstract,也可以不加abstract,如果想要继承抽象类的话,必须要在子类中覆写抽象类中的全部抽象方法才行。

抽象类里面的方法只需声明,无需写方法体,方法体在子类中覆写时写入方法体就行了。

个人理解,如有错误,请纠正,谢谢。
------其他解决方案--------------------
引用:
引用:引用:用abstract 修饰的类都是抽象类。
抽象类中可以有抽象方法,也可以有非抽象方法。
WindowAdapter这个抽象类实现了WindowListener, WindowStateListener, WindowFocusListener这些接口,以上的方法就是这几个接口的方法。
之……

这个说得不错++
------其他解决方案--------------------
引用:
引用:引用:用abstract 修饰的类都是抽象类。
抽象类中可以有抽象方法,也可以有非抽象方法。
WindowAdapter这个抽象类实现了WindowListener, WindowStateListener, WindowFocusListener这些接口,以上的方法就是这几个接口的方法。
之……


++
------其他解决方案--------------------
抽象类的特点:
1.抽象方法一定在抽象类中。
2.抽象方法和抽象类都必须被abstract关键字修饰。
3.抽象类不可以用new创建对象,因为调用抽象方法没意义。
4.抽象类中的方法要被使用,必须由子类复写其所有的抽象方法后
建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还
是一个抽象类。

抽象类和一般类没有太大的不同。
该如何描述事物,就如何描述事物,只不过,该事物中,出现了一些看不懂