abstract关键字表明类或者成员方法具有抽象属性,可以修饰:
- 类
- 方法
abstract修饰类
被abstract修饰的类称为抽象类,抽象类不能被实例化,必须经过子类的继承才能使用。
被abstract修饰的类称为抽象类,抽象类不能被实例化,必须经过子类的继承才能使用。
abstract修饰方法
被abstract修饰的方法为构造方法,当某个方法被定义为抽象方法时,该方法不能有实现,该方法的实现在子类中重载。
被abstract修饰的方法为构造方法,当某个方法被定义为抽象方法时,该方法不能有实现,该方法的实现在子类中重载。
注:1.如果一个类含有抽象方法,则这个类一定是抽象类;但是如果一个类是抽象类时,其中的方法不一定都是抽象方法。
2.由于abstract修饰的类,需要被继承,从而进行重载。因此abstract和fianl不能同时修饰一个类。
package abstractTest;
public abstract class myClassFather
{
final int num = 1;
public void myMethod1 ( )
{
System.out.println( "我是父类方法" );
}
public myClassFather ( )
{
System.out.println( "我是父类构造方法" );
}
public abstract void myAbstractMethod ( );// 父类的抽象方法
}
package abstractTest;
public class myClassChild extends myClassFather
{
@Override
public void myMethod1 ( )
{
System.out.println( "我是子类方法" );
}
public myClassChild ( )
{
System.out.println( "我是子类构造方法" );
}
@Override
/**
* 父类的抽象方法,必须重载
*/
public void myAbstractMethod ( )
{
}
}
package abstractTest;
public class MyAbstract
{
/**
* @param args
*/
public static void main ( String[ ] args )
{
myClassChild myclass1 = new myClassChild( );
myclass1.myMethod1( );
}
}
显示结果为:
我是父类构造方法
我是子类构造方法
我是子类方法