class A {
public int method1(int a, int b) {
System.out.println("我马上就被抽象方法覆盖了");
}
}
abstract class B extends A
{
public abstract int method1(int a,int b);//子类覆盖父类的方法。。。郁闷啊 这样也算覆盖吗????
}
class Test2
{
public static void main(String[] args)
{
}
}
揭迷惑啊。。。。。其大神作者: 李贺晓 时间: 2012-10-16 14:14
class A
{
public void method1(int a, int b)
{
System.out.println("我马上就被抽象方法覆盖了");
}
}
abstract class B extends A
{
public abstract void method1(int a,int b);//子类覆盖父类的方法
}
class Test2
{
public static void main(String[] args)
{
//B b=new B();
//System.out.println(b.method1());
}
}
首先你的方法定义都错误了,methond1定于成int类型的方法,必须要有返回值的;
抽象类是无法被实例化的。。。。
抽象类中的方法要是被调用的话,必须被继承并实现,才能进行调用,在Test2中,如果你不对B进行实例话,并调用methond1方法的话,jvm是不会报错的
但是如果你在Test2中对B进行实例化,并调用methond1方法,就不行了,会提示你‘B是抽象的,无法进行实例化’
但是这种继承方法是完全正确的 作者: 杨华东 时间: 2012-10-16 18:23 本帖最后由 杨华东 于 2012-10-16 18:26 编辑
李贺晓 发表于 2012-10-16 14:14
class A
{
public void method1(int a, int b)
方法没错啊 那错了??抽象类B作为非抽象A的子类 方法覆盖根本没错!!!
你说的哪个方法必须要有返回值类型的??郁闷作者: 梁世喜 时间: 2012-10-16 18:35
class A {
public int method1(int a, int b) {
System.out.println("我马上就被抽象方法覆盖了");
}
}
这个方法不是要返回值吗、、作者: 杨华东 时间: 2012-10-16 18:40
梁世喜 发表于 2012-10-16 18:35
class A {
public int method1(int a, int b) {
System.out.println("我马上就被抽象方法覆盖了") ...