为了账号安全,请及时绑定邮箱和手机立即绑定

在子类方法重写的情况下,怎么调用抽象父类中的speak()普通方法

在子类方法重写的情况下,怎么调用抽象父类中的speak()普通方法。

public abstract class Shape {
    //抽象父类
    public abstract double mianji(double r);
    int a=10;
    public void speak(){
    	System.out.println("抽象父类中的speak被调用!");
    }
}
public  class Rectangle extends Shape {
        //子类
	int a=20;
	public void speak(){
		System.out.println("子类中的speak方法被调用!");
	}
	@Override
	public double mianji(double r) {
		// TODO Auto-generated method stub
		return 0;
	}
	}

该怎么在Initail类的main函数里调用抽象父类的属性a和speak()方法.

正在回答

2 回答

super.speak();

0 回复 有任何疑惑可以回复我~
#1

VienTte 提问者

那怎么通过创建子类对象调用抽象父类的方法呢? Shape way=new Rectangle(); 然后way.super.speak()么?
2016-09-26 回复 有任何疑惑可以回复我~
#2

ziom 回复 VienTte 提问者

不能这么写。调用父类就是用super关键字,它是与this(当前对象)相对应的。
2016-09-26 回复 有任何疑惑可以回复我~
#3

VienTte 提问者 回复 ziom

本来是想创建父类对象调用的,但是因为抽象父类不能创建对象;那是不是就不能通过创建子类对象调用抽象父类方法,只能在子类里面调用
2016-09-26 回复 有任何疑惑可以回复我~
#4

ziom 回复 VienTte 提问者

在子类中调用就够了啊。还有你说的创建子类对象调用父类方法我不太明白,子类对象如何调用父类方法?
2016-09-26 回复 有任何疑惑可以回复我~
查看1条回复

如果希望在子类中调用父类的构造方法,需要在子类的构造函数中调用super(),若要调用父类的属性和方法,则用super.a和super.speak()调用,若子类调用的属性方法在子类中不存在时,也可以用this调用父类的属性或者方法

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在子类方法重写的情况下,怎么调用抽象父类中的speak()普通方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信