zoukankan      html  css  js  c++  java
  • 对象作为返回值类型&&链式编程

    package com.imooc;
    class Student{
        public void study(){
            System.out.println("学生学习");
        }
    }
    class StudentDemo{
        public Student getStudent(){
            return new Student();
        }
    }
    public class ReturnDemo {
        public static void main(String[] args){
            StudentDemo sd = new StudentDemo();
            Student s = sd.getStudent();
            s.study();
        }
    }

     抽象类作为返回值类型,返回的是该抽象类的子类对象

    package com.imooc;
    abstract class Person{
        public abstract void study();
    }
    class Student extends Person{
        public void study(){
            System.out.println("学生爱学习");
        }
    }
    class StudentDemo{
        public Person getPerson(){
            return new Student();
        }
    }
    public class ReturnDemo {
        public static void main(String[] args){
            StudentDemo sd = new StudentDemo();
            Person p = sd.getPerson();
            p.study();
        }
    }

     接口作为返回返回值类型,返回的是实现该接口的实现类的对象

    package com.imooc;
    interface Love{
        public abstract void love();
    }
    class Teacher implements Love{
        public void love(){
            System.out.println("老师爱上课");
        }
    }
    class TeacherDemo{
        public Love getLove(){
            return new Teacher(); //因为teacher实现了Love接口
        }
    }
    public class TeacherTest {
        public static void main(String[] args){
            TeacherDemo td = new TeacherDemo();
            Love l = td.getLove();
            l.love();
        }
    }

     如果每次调用完方法都返回一个对象,那么便可以实现链式编程

    例如:

    package com.imooc;
    interface Love{
        public abstract void love();
    }
    class Teacher implements Love{
        public void love(){
            System.out.println("老师爱上课");
        }
    }
    class TeacherDemo{
        public Love getLove(){
            return new Teacher(); //因为teacher实现了Love接口
        }
    }
    public class TeacherTest {
        public static void main(String[] args){
            TeacherDemo td = new TeacherDemo();
            Love l = td.getLove();
            l.love();
            
            //链式编程:每次调用完方法之后返回的是一个对象
            td.getLove().love();
            //td是一个对象,td.getLovce()返回的是一个实现Love接口的对象,
            //可以再调用这个对象的方法
        }
    }
  • 相关阅读:
    Protected和Default的区别
    将数组中负数放在正数前面
    java.io包和杯子测楼
    hadoop基础
    极限编程和JUnit
    接口和抽象类
    C# 中窗口AutoScaleMode属性
    计算机的自启动管理
    labview中的移位寄存器、循环隧道,自动索引隧道的区别
    发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >
  • 原文地址:https://www.cnblogs.com/rain-1/p/5066415.html
Copyright © 2011-2022 走看看