interface jack{
void dance();
void basketball();
}class me implements tom,jack{
public void sing(){
System.out.println("i am singing");
}
public void football(){
System.out.println("i am playing football");
}
public void dance(){
System.out.println("i am dancing");
}
public void basketball(){
System.out.println("i am playing basketball");
}
}public class duotai{
public static void main(String args[]){
tom t=new me();
jack j=(jack)t; //注释处;
j.dance();
j.basketball();
}
}请问,注释处看不明白啊?我的理解是,tom是me的接口,然后tom的引用指向了me的对象,
me是子类,me同时又实现了jack的接口,然后这个我就不明白了,jack j=(jack)t;这个可以看做me直接向上转型,
为什么不可以直接写成jack j=t;而要强制转换?绕糊涂了啊...
直接写成jack j=t; 啊?
void dance();
void basketball();
}class me implements tom,jack{
public void sing(){
System.out.println("i am singing");
}
public void football(){
System.out.println("i am playing football");
}
public void dance(){
System.out.println("i am dancing");
}
public void basketball(){
System.out.println("i am playing basketball");
}
}public class duotai{
public static void main(String args[]){
tom t=new me();
jack j=(jack)t; //注释处;
j.dance();
j.basketball();
}
}请问,注释处看不明白啊?我的理解是,tom是me的接口,然后tom的引用指向了me的对象,
me是子类,me同时又实现了jack的接口,然后这个我就不明白了,jack j=(jack)t;这个可以看做me直接向上转型,
为什么不可以直接写成jack j=t;而要强制转换?绕糊涂了啊...
直接写成jack j=t; 啊?
void sing();
void football();
}interface jack{
void dance();
void basketball();
}class me implements tom,jack{
public void sing(){
System.out.println("i am singing");
}
public void football(){
System.out.println("i am playing football");
}
public void dance(){
System.out.println("i am dancing");
}
public void basketball(){
System.out.println("i am playing basketball");
}
}public class duotai{
public static void main(String args[]){
tom t=new me();
jack j=(jack)t;
j.dance();
j.basketball();
}
}
2.变量t指向了me的对象,而me 同时实现了jack接口,所以可以强制类型转换成jack类型,
jack j=(jack)t;这样是没问题的。
表达能力不太好,不知道有没有解释清楚