标签:main rgs sys out 方法重写 instance 总结 Stub 返回值
需要掌握的知识点
同一个引用类型,使用不同的实例而执行不同操作
父类类型 变量 = new 子类A构造器(形参);
父类类型 变量 = new 子类B构造器(形参);
下面是一个例子:父亲类型当做方法参数,父亲类型可以接受子类的类型
//打印机父类
public class Printer {
String Name = "Father!!";
public void print() {
System.out.println("Print father!");
}
}
//打印机黑白
public class BPrinter extends Printer{
String Name = "BLACK!!";
@Override
public void print() {
// TODO Auto-generated method stub
System.out.println("黑白纸张!!");
}
}
//打印机彩色
public class CPrinter extends Printer{
String Name = "BLACK!!";
@Override
public void print() {
// TODO Auto-generated method stub
System.out.println("彩色纸张!!!");
}
}
public class Master {
//父亲类型当做方法参数!
public void mprint(Printer p ) {
p.print();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//如果子类方法重写,调用的是子类的方法
Master Jeason = new Master();
BPrinter p1 = new BPrinter();
CPrinter p2 = new CPrinter();
Jeason.mprint(p1);
Jeason.mprint(p2);
//调用的父类成员变量
Printer p = new BPrinter();
System.out.println( p.name );
}
}
// 输出:
// 黑白纸张!!
// 彩色纸张!!!
// printer father!!
上面的这个过程叫做向上转型。
总结一下:
向下转型就是父类转换成子类(强制转换)
前提是要先进行向上转型:
Printer p = new BPrinter();
BPrinter p3 = (BPrinter)p;
其中我们可以借用instanceof
运算法先进性判断,随后进行强制转换
标签:main rgs sys out 方法重写 instance 总结 Stub 返回值
原文地址:https://www.cnblogs.com/JeasonIsCoding/p/13232487.html