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接口的对象,
//可以再调用这个对象的方法
}
}

对象作为返回值类型&&链式编程的更多相关文章

  1. 10-02 Java 形式参数和返回值的问题深入研究,链式编程

    形式参数和返回值的问题: 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该 ...

  2. 从零开始学 Web 之 jQuery(七)事件冒泡,事件参数对象,链式编程原理

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)

    jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...

  4. el表达式获取对象属性值 返回值类型

    实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...

  5. 获得函数返回值类型、参数tuple、成员函数指针中的对象类型

    //function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...

  6. Java链式编程接口

    在android开发中显示一个AlertDialog时,常采用下列的写法: new AlertDialog.Builder(getApplicationContext()) .setTitle(&qu ...

  7. iOS:用Block写一个链式编程

    一.介绍 链式编程是一个比较新颖的编程方式,简单直观,用起来也比较舒服.目前比较有名的Mansory和BabyBlueTooth就是使用链式编程写的第三方框架. 二.写法 链式编程写法不同于传统方式, ...

  8. iOS利用block实现链式编程方法(Objective-C链式编程)

    objc利用block实现链式编程方法 因为不好读.block和其他语言的匿名函数一样,很多程序员刚开始很难主动去用他. 本文描述block作为属性的实际使用,看懂block,并讲解如何利用block ...

  9. C++ 运算符重载三(链式编程)

    //运算符重载之链式编程 #include<iostream> using namespace std; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...

随机推荐

  1. 【转】CentOS图形界面的开启与关闭

    源自:http://blog.sina.com.cn/s/blog_4a1f76860100zpus.html 安装CentOS 5.6系统的时候我没有先装任何组件,现在用X Window,需要再安装 ...

  2. MySQL学习系列一---命令行连接mysql和执行sql文件

    1.命令行连接mysql #mysql -h(主机) -u(用户名) -p (数据库名) mysql -hlocalhost -uroot -p testdb Enter password: **** ...

  3. 【玩转Ubuntu】08. Linux报错:Syntax error: "(" unexpected解决办法

    问题: 在MAC上写了一段shell脚本,放到Ubuntu上运行总是报下面这个错误,单步调试都是对的,就是直接运行会报错. bixiaopeng@ubuntu:~/package$ sh packag ...

  4. clistctrl 虚拟列表

    一.什么是虚拟列表控件 虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件.. 二.为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示 ...

  5. HDU 4417 Super Mario

    题解:函数式线段树求区间小于等于k的数有几个,离线做法,首先将所有询问和序列一起离散,然后用函数式线段树处理. #include <map> #include <cstdio> ...

  6. wordpress在window下完美实现301重定向的方法

    问题: 首先,简单说一下关于301重定向的问题,最简单的理解就是,假设你的主机上绑定有 www.uilike.cn, uilike.cn, www.uiseo.cn三个域名,当你想输入 uilike. ...

  7. flume 自己定义 hbase sink 类

    參考(向原作者致敬) http://ydt619.blog.51cto.com/316163/1230586 https://blogs.apache.org/flume/entry/streamin ...

  8. linux学习历程

    1.linux初步介绍:2.linux的第一次接触:3.linux用户管理4.linux常用命令(3600+个).5.linux下所有者,所在组和其他组的介绍6.linux下文件和目录权限机制 lin ...

  9. mysql 数据备份

    一.备份数据库并下载到本地[db_backup.php] php代码: <?php // 数据库参数(此处测试,直接给定,项目中使用配置文件) $cfg_dbname = 'blog'; $cf ...

  10. [C#绘图]Matrix类

    想要从入门到精通一门语言,最好的学习文档就是官方提供的文档,比如说OpenCV的学习,最权威的学习资料还是其官方的学习文档,C#和.net的最好的学习入门文档还是MSDN.但是好多人一开始真的不会用, ...