上溯造型与里氏替换原则

 在.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教师");
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值