public abstract class s {
public abstract void gets();
}
class Sanjiao extends s{
double l,h;
Sanjiao(double l,double h){
this.l=l;
this.h=h;
}
public void gets(){
System.out.println(0.5*l*h);
}
public static void main(String[] args) {
Sanjiao p=new Sanjiao(2.1,3.5);
gets();//就是这一行有问题
}
}
Sanjiao q=new Sanjiao(210,350);
p.gets();
q.gets();
这样就好理解点了吧
普通方法需要使用“对象.方法名”的方式调用,
so,用p.gets()。还有个问题,楼主的那个抽象类怎么是public修饰的,
然后下面的Sanjiao类却不是,这样编译的话还是应该会报错,
可能是什么找不到main方法之类的,
所以稳妥的改法就是把Sanjiao声明为public属性,去掉
s的,同时将文件名更改为Sanjiao.java。
public abstract class s {
public abstract void gets();
}
class Sanjiao extends s{
double l,h;
Sanjiao(double l,double h){
this.l=l;
this.h=h;
}
public void gets(){
System.out.println(0.5*l*h);
}
public static void main(String[] args) {
Sanjiao p=new Sanjiao(2.1,3.5);
p.gets();
}
}
class Zhengfangxing extends s{
double h;
Zhengfangxing(double h){
this.h=h;
}
public void gets(){
System.out.println(h*h);
}
public static void main(String[] args) {
Zhengfangxing p1=new Zhengfangxing(5.6);
p1.gets();
}
}
class Yuan extends s{
double r;
Yuan(double r){
this.r=r;
}
public void gets(){
System.out.println(3.14*r*r);
}
public static void main(String[] args) {
Yuan p2=new Yuan(5.1);
p2.gets();
}
}