//上转型对象的理解
class AA
{
void func()
{
System.out.println("class AA");
}
}
class BB extends AA
{
void func()//重写方法
{
System.out.println("class BB");
}
}
class CC extends AA
{
void func()//重写方法
{
System.out.println("class CC");
}
}
public class test7
{
public static void main(String args[])
{
AA a;
a = new AA();
a.func();
a = new BB();//a是BB对象的上转型对象
a.func();
a = new CC();//a是CC对象上的上转型对象
a.func();
}
}
输出:
class AA
class BB
class CC
PS:上转型对象一般都在抽象类的时候使用
####################################################################################################################################
接口回调:
把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为接口的回调。
//接口回调的理解
interface I
{
void hello();//接口在声明方法时,可以省略方法前面的public和abstract
}
class AB implements I
{
public void hello()//但在类里实现接口的方法时,一定要有public来修饰
{
System.out.println("Hell world !");
}
}
class CD implements I
{
public void hello()//但在类里实现接口的方法时,一定要有public来修饰
{
System.out.println("Hello Java !");
}
}
public class test8
{
public static void main(String args[])
{
I i;//接口变量i中存放对象的引用
i = new AB();
i.hello();//接口回调
i = new CD();
i.hello();//接口回调
}
}
输出:
Hell world !
Hello Java !