有这个么一个程序:
abstract class Base{
abstract public void myfunc();
public void another(){
System.out.println("Another method");
}
}
public class Abs extends Base{
public static void main(String args[]){
Base a = new Abs();
a. another ();
}
public void myfunc(){
System.out.println("My Func");
}
public void another (){
myfunc();
}
}
我本以为这个程序编译会通不过,但是编译执行都没问题,我想问一下,抽象类不是必须在子类中实现吗? 作者: 黑马振鹏 时间: 2012-7-13 09:10
abstract class Base{
abstract public void myfunc();
public void another(){
System.out.println("Another method");
}
}
这个类是抽象类,其中有两个方法,一个是抽象方法abstract public void myfunc();
,另外一个是非抽象方法。
子类继承了父类,并且实现了抽象方法public void myfunc(){
System.out.println("My Func");
}
子类就可以实例化对象了。因为父类中只有这一个抽象方法。
主函数中:
Base a = new Abs();
a. another ();
创建了Abs() 对象,调用自己的方法another,而another方法内部调用了myfunc,就是子类复写抽象方法myfunc,打印结果:My Func
作者: 杨康 时间: 2012-7-13 14:32
abstract class Base
{
abstract public void myfunc();
public void another()
{
System.out.println("Another method");
}
}
class Abs extends Base
{
public static void main(String[] args)
{
Base a = new Abs();//运用了对象多态的特点,父类引用指向子类对象
a.another();//调用自己another()方法,而该方法中对父类的方法进行了复写
}
public void myfunc()
{
System.out.println("My Func");
}
public void another()
{
myfunc();
}
}