目录
一.传参
1.类名作为形式参数
当你以后看到一个方法的形参要一个 类 类型,你就传递一个该类的对象。
例子:
public class MyTest {
public static void main(String[] args) {
int num = 50;
Student student = new Student();
student.num = 90;
test(student, num);
student.show();
}
public static void test(Student student, int num) {
student.num = num;
}
}
class Student {
int num = 20;
public void show() {
System.out.println(this.num);
}
}
2.抽象类名作为形式参数
当你以后看到一个方法的形参要一个抽象类 类型,你就传递一个该抽象类的子类对象。
例子:
public class MyTest2 {
public static void main(String[] args) {
int num = 80;
BB bb = new BB();
bb.num = 70;
test(bb, num);
System.out.println(bb.num);
}
public static void test(AA aa, int num) {
aa.num = num;
}
}
abstract class AA {
int num = 50;
public abstract void aa();
}
class BB extends AA {
int num = 30;
@Override
public void aa() {
System.out.println(num);
}
}
3.接口名作为形式参数
当你以后看到一个方法的形参要一个接口 类型 ,你就传递一个该接口的子类对象。
例子:
public class MyTest3 {
public static void main(String[] args) {
CC cc = new CC();
cc.num = 20;
test(cc);
cc.aa();
}
public static void test(MyInterface myInterface) {
System.out.println(myInterface.num);
}
}
interface MyInterface {
public static final int num = 100;
void aa();
}
class CC implements MyInterface {
int num = 30;
@Override
public void aa() {
System.out.println(this.num);
}
}
二.返回值
1.类名作为返回值类型
当你以后看到一个方法的返回值类型,是一个类 类型,你就返回一个该类的对象。
例子:
public class MyTest {
public static void main(String[] args) {
Student student = getStudent();
System.out.println(student.num); //
student.show();
}
public static Student getStudent() {
Student student = new Student();
student.num = 100;
return student();
}
}
class Student {
int num = 20;
public void show() {
System.out.println(this.num);
}
}
2.抽象类名作为返回值类型
当你以后看到一个方法的返回值类型是一个抽象类 类型,你就返回一个该抽象类的子类对象。
例子:
public class MyTest2 {
public static void main(String[] args) {
AA aa = getAA();
System.out.println(aa.num);
}
public static AA getAA() {
BB bb = new BB();
bb.num = 90;
return bb;
}
}
abstract class AA {
int num = 50;
public abstract void aa();
}
class BB extends AA {
int num = 30;
@Override
public void aa() {
System.out.println(num);
}
}
3.接口名作为返回值类型
当你以后看到一个方法的返回值类型是一个接口 类型,你就返回一个该接口的子类对象。
例子:
public class MyTest3 {
public static void main(String[] args) {
MyInterface anInterface = getInterface();
System.out.println(anInterface.num); //100
CC cc = (CC) anInterface;
System.out.println(cc.num); //800
}
public static MyInterface getInterface() {
CC cc = new CC();
cc.num = 800;
return cc;
}
}
interface MyInterface {
public static final int num = 100;
void aa();
}
class CC implements MyInterface {
int num = 30;
@Override
public void aa() {
System.out.println(this.num); //
}
}