java程序挑错。。。。
4、下面各程序有错吗?指出错在哪里?为什么?(1)classParent{privateintmine;}classChildextendsParent{intgetMi...
4 、 下面各程序有错吗?指出错在哪里?为什么?
(1)
class Parent
{
private int mine;
}
class Child extends Parent
{
int getMine( )
{ return mine; }
}
(2)
class Parent
{
private int mine;
int getMine( )
{ return mine; }
}
class Child extends Parent{
int mine;
int getMine( )
{ return super.mine();}
}
(3) class Parent{
int mine;
}
class Child extends Parent{
int mine;
}
class UseChild
{
static int getMine (Child c) { return c.mine; }
}
class Exp5_5_3
{
public static void main(String[] args)
{
Parent p=new Parent();
System.out.println(UseChild. getMine (p) );
}
}
(4) class P
{ int mine1, mine2;
Parent()
{ mine1=-1; }
Parent(int m)
{ mine2=m; this(); }
}
(5) interface MyIterf
{ void method(); }
abstract class Parent implements MyIterf
{ }
class Child extends Parent
{ }
(6) interface MyIterf
{ void method(); }
abstract class Parent implements MyIterf
{ }
class Child extends Parent{
{ void method(){System.out.println(“I am implemented now!”); }
}
(7) class P
{
final void method()
{ }
void method(int)
{ }
} 展开
(1)
class Parent
{
private int mine;
}
class Child extends Parent
{
int getMine( )
{ return mine; }
}
(2)
class Parent
{
private int mine;
int getMine( )
{ return mine; }
}
class Child extends Parent{
int mine;
int getMine( )
{ return super.mine();}
}
(3) class Parent{
int mine;
}
class Child extends Parent{
int mine;
}
class UseChild
{
static int getMine (Child c) { return c.mine; }
}
class Exp5_5_3
{
public static void main(String[] args)
{
Parent p=new Parent();
System.out.println(UseChild. getMine (p) );
}
}
(4) class P
{ int mine1, mine2;
Parent()
{ mine1=-1; }
Parent(int m)
{ mine2=m; this(); }
}
(5) interface MyIterf
{ void method(); }
abstract class Parent implements MyIterf
{ }
class Child extends Parent
{ }
(6) interface MyIterf
{ void method(); }
abstract class Parent implements MyIterf
{ }
class Child extends Parent{
{ void method(){System.out.println(“I am implemented now!”); }
}
(7) class P
{
final void method()
{ }
void method(int)
{ }
} 展开
2个回答
展开全部
(1)错, 父类的属性子类不能直接调用,如果想在子类使用 则 super.mine
(2)错,父类中没有mine() 这个方法,只有这个属性,所以返回的应该是 super.mine; 而不是 super.mine();
(3)错 ,main方法只能声明在public类中,还有 UseChild.getMine(Child c) 接收的参数是Child类型的,父类Parent不能转换成Child
(4)错 ,Parent 是什么类型,没有指定相应的类型,就声明构造函数 是不行的
应该这么写才可以 :
class P
{ int mine1, mine2;
P()
{ mine1=-1; }
P(int m)
{ this(); mine2=m; }
}
(5)错,实现接口就必须实现接口里的方法
(6)错,接口里的方法是public 的,而子类实现了接口里的方法,必须比接口里的方法声明权限更大才可以,必须是public的
(7)错,第二个method 方法只有类型,没有变量的声明,无法使用
(2)错,父类中没有mine() 这个方法,只有这个属性,所以返回的应该是 super.mine; 而不是 super.mine();
(3)错 ,main方法只能声明在public类中,还有 UseChild.getMine(Child c) 接收的参数是Child类型的,父类Parent不能转换成Child
(4)错 ,Parent 是什么类型,没有指定相应的类型,就声明构造函数 是不行的
应该这么写才可以 :
class P
{ int mine1, mine2;
P()
{ mine1=-1; }
P(int m)
{ this(); mine2=m; }
}
(5)错,实现接口就必须实现接口里的方法
(6)错,接口里的方法是public 的,而子类实现了接口里的方法,必须比接口里的方法声明权限更大才可以,必须是public的
(7)错,第二个method 方法只有类型,没有变量的声明,无法使用
展开全部
1、 父类属性是private的,其他类是访问不到的
2、 父类中没有mine方法,貌似意图在调用getMine()方法
3、 父类不能自动转换为子类类型,体现在main方法内
4、 构造方法名称应该是P吧,还有就是构造方法中调用构造方法时,应该首先调用
5、 子类没有实现父类所继承下来的未实现方法
6、 接口中的访问修饰都是public的,因此:抽象类继承下来也就是public的,而类中的访问修饰默认是default的,根据继承规定、要重写(实现)父类方法、访问修饰范围不能缩小
7、 方法里面的参数是不小心漏掉了还是本身就这样、int后面跟个变量名称就好了
2、 父类中没有mine方法,貌似意图在调用getMine()方法
3、 父类不能自动转换为子类类型,体现在main方法内
4、 构造方法名称应该是P吧,还有就是构造方法中调用构造方法时,应该首先调用
5、 子类没有实现父类所继承下来的未实现方法
6、 接口中的访问修饰都是public的,因此:抽象类继承下来也就是public的,而类中的访问修饰默认是default的,根据继承规定、要重写(实现)父类方法、访问修饰范围不能缩小
7、 方法里面的参数是不小心漏掉了还是本身就这样、int后面跟个变量名称就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询