【Java必备基础语法】父类及其派生类作为方法返回值类型
a2是a1的子,是否都可以作为某个方法的返回值类型?
下面的代码就验证了这一想法。
aa.java的内容如下:
package aannpk;
//返回值类型
class a1 {
}
class a2 extends a1 {
}
//以上是返回值类型
class abc {
a1 a1a1(){
System.out.println(“a1”);
a1 a11 = new a1();
return a11;
}
}
class aa extends abc {
public a2 a1a1(){//这一行就是要注意的,返回值类型,a2是a1的子类。
System.out.println(“a2”);
a2 a21 = new a2();
return a21;
}
public static void main(String[] args) {
aa aa1 = new aa();
aa1.a1a1();
System.out.println("注意返回值的类型,是父类的子类");
}
}
运行代码后,结果是:
a2
注意返回值的类型,是父类的子类
aa是abc的子类,public修饰符就不需要加了;
main是静态的方法,不能直接调用public的a1a1(),
只能写成:
aa aa1 = new aa();
aa1.a1a1();
除非把a1a1()前头改成static这个修饰符(与main()前头的static一样)。
本文看似模糊无重点,看看下面的链接就知道了:
内部类不能声明为:public
子类继承父类时,不需要再用public修饰
在静态方法中调用非静态方法
自定义类作为返回值的类型