抽象类用作做参数
使用的是该抽象类的子类的对象
abstract class Person
{
public abstract void study();
}
class PersonDemo
{
public void method(Person p){
p.study();
}
}
class Student extends Person
{
public void study(){
System.out.println("Good Good Study,Day Day Up");
}
}
class Test
{
public static void main(String [] args){
PersonDemo pd=new PersonDemo();
Person p=new Student();
pd.method(p); }
}
程序运行结果:
Good Good Study,Day Day Up
接口类用做参数
interface A
{
public abstract void love();
}
class loveDemo
{
public void method(A l){
l.love();
}
}
//定义具体类实现接口
class B implements A
{
public void love(){
System.out.println("love ");
}
}
class Test
{
public static void main(String [] args){
loveDemo ld=new loveDemo();
A l=new B();
ld.method(l);
}
}
运行结果:love.
和抽象类一样的
返回值
abstract class A
{
public abstract void love();
}
class Demo
{
public A getlove(){
return new B();
}
}
class B extends A
{
public void love(){
System.out.println("love");
}
}
class Test
{
public static void main(String [] args){
Demo d=new Demo();
A l=d.getlove();
l.love();
}
}
运行结果:love
接口作为返回值也是一样的。