上溯造型与里氏替换原则

xiaoxiao2022-06-11  35

 在.net中的里氏替换原则在javaEE中称为上溯造型;­ ­   定义:­        父类引用指向子类对象­ ­   规则:­       1.子类与父类符合 is - a 的关系­       2.凡是子类可以出现的地方父类都可以出现­       3.父类不可以强制转换成子类­       4.父类对象有时候可以强制转换成子类对象 如:­          Person p = new Student;­         Student stu=(Student)p;­    优点:       使用里氏替换原则可以增强程序的扩展性,减少方法重载的数量。    缺点:       丢失了子类所拥有的特有特性。       使用:       1.作为方法的返回类型          2.作为方法的参数类型

 

下面是代码:

public class Test{ public static void main(String[] args){ Person p = new Student(); p.setName("小燕"); //p.wrok(); Student stu= (Student)p;//将父类对象强制转换成子类对象 stu.wrok(); System.out.println("====================="); Test t= new Test(); Person p1=t.getInstace("stu"); p1.setName("小花"); p1.wrok(); t.wrok(p); } public Person getInstace(String type){//作为方法返回类型 if(type.equals("stu")){ return new Student(); } return new Teacher(); } public void wrok(Person p){//作为方法参数类型 p.wrok(); } } class Person{ private String name; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void wrok(){ System.out.println("人们要努力工作!"); } } class Student extends Person{ public void wrok(){ System.out.println(this.getName()+"要努力学习java"); } } class Teacher extends Person{ public void wrok(){ System.out.println(this.getName()+"是Java教师"); } }

 

转载请注明原文地址: https://www.6miu.com/read-4930988.html

最新回复(0)