一、形式参数
1. 基本类型(不举例)
2. 引用类型
类:需要该类的对象
class A {
public void a() {
System.out.println("A");
}
}
class B {
public void b(A s) {
s.a(); }
}
class Day1002 {
public static void main(String[] args) {
A a = new A();
B aa = new B();
aa.b(a);
}
}
抽象类:需要该抽象类子类的对象
abstract class A {
public abstract void a();
}
class E {
public void e(A aa) {
aa.a();
}
}
class B extends A {
public void a() {
System.out.println("B");
}
}
class Day1003 {
public static void main(String[] args) {
E e = new E();
A aa = new B();
e.e(aa);
}
}
接口:需要该接口的实现类对象
interface A {
public abstract void aa();
}
class B {
public void b(A a) {
a.aa();
}
}
class C implements A {
public void aa() {
System.out.println("c");
}
}
class Day1004 {
public static void main(String[] args) {
B b = new B();
A a = new C();
b.b(a);
}
}
二、返回值
1. 基本类型(不举例)
2. 引用类型
类:返回该类的对象
class A {
public void a() {
System.out.println("A");
}
}
class B {
public A b() {
return new A();
}
}
class Day1005 {
public static void main(String[] args) {
A a = (new B()).b();
a.a();
}
}
抽象类:返回该类的子类对象
abstract class A {
public abstract void a();
}
class E {
public A e() {
return new B();
}
}
class B extends A {
public void a() {
System.out.println("B");
}
}
class Day1006 {
public static void main(String[] args) {
A a = (new E()).e();
a.a();
}
}
接口:返回该接口的实现类的对象
interface A {
public abstract void aa();
}
class B {
public A b() {
return new C();
}
}
class C implements A {
public void aa() {
System.out.println("c");
}
}
class Day1007 {
public static void main(String[] args) {
A a = (new B()).b();
a.aa();
}
}