/*
老师和学生案例,加入抽烟的额外功能
分析:
老师和学生都具有共同的变量:名字,年龄
共同的方法:吃饭,睡觉
老师有额外的功能:抽烟(设定个接口),部分抽烟 有共同的变量和方法,设一个父类:person类 抽象类
person类:
名字,年龄
吃饭(); 抽象方法,可重写
睡觉(){};成员方法
子类:
teacher类和teacher类可继承父类。
但,部分老师和学生抽烟,则与抽烟接口进行扩展
*/ //设定抽烟接口
//接口的变量是:静态常量最终量;接口没有构造方法,接口的成员方法是:抽象方法
interface Smoking{
// 静态 常量 最终量:public static final int a = 2; 有变量就这样写,这里不需要常量
public abstract void smoking();//抽象方法没有方法体
} //设定父类:抽象类
abstract class perSon4{ //成员变量
private String name;
private int age; //构造方法
public perSon4(){}
public perSon4(String name, int age){
this.name = name;
this.age = age;
}
//getXxx、setXxx。
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
} //抽象方法 吃饭
public abstract void eat();
//成员方法
public void sleep(){
System.out.println("Zzz...");
}
} //子类 老师类 继承父类
class teacher5 extends perSon4{
//无参构造方法
public teacher5(){}
//有参构造方法
public teacher5(String name,int age){
super(name,age);
}
public void eat() {
System.out.println("下班回去睡觉");
}
} //子类 学生类 继承父类
class student5 extends perSon4{
//构造方法
public student5(){}
public student5(String name,int age){
super(name,age);
}
public void eat(){
System.out.println("下课回家睡觉");
}
} //部分老师抽烟,扩展抽烟接口 class SmokTeacher5 extends teacher5 implements Smoking{
//继承了老师类,则把老师类的所有变量方法弄出来:
public SmokTeacher5(){}
public SmokTeacher5(String name,int age){
super(name,age);
}
public void smoking() {
System.out.println("抽烟的老师");
}
} //部分学生抽烟 class SmokStudent5 extends student5 implements Smoking{
//继承了学生类,则把学生类的所有变量方法写出来:
public SmokStudent5(){}
public SmokStudent5(String name,int age){
super(name,age);
}
public void smoking() {
System.out.println("抽烟的学生");
}
} //测试类 class InterfaceTest1 {
public static void main(String[] args){ //测试学生类 直接调用继承了类和扩张了方法的类
SmokStudent5 s = new SmokStudent5("张三",20);
s.smoking();
s.eat();
s.sleep(); System.out.println("---------"); //测试老师类
SmokTeacher5 t = new SmokTeacher5("李四",33);
t.smoking();
t.eat();
t.sleep();
}
}

java 8-8 接口的练习的更多相关文章

  1. 【转】java通用URL接口地址调用方式GET和POST方式

    java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...

  2. Java继承和接口

    接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...

  3. java中set接口的用法

    java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...

  4. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  5. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  6. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

  7. java抽象类和接口区别

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  8. java抽象类与接口的区别及用法

    java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...

  9. 如何让Java和C++接口互相调用:JNI使用指南

    如何让Java和C++接口互相调用:JNI使用指南 转自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos ...

  10. Java中的队列:java.util.Queue接口

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

随机推荐

  1. [转] X-RIME: 基于Hadoop的开源大规模社交网络分析工具

    转自http://www.dataguru.cn/forum.php?mod=viewthread&tid=286174 随着互联网的快速发展,涌现出了一大批以Facebook,Twitter ...

  2. 在 SharePoint Server 2013 中配置建议和使用率事件类型

    http://technet.microsoft.com/zh-cn/library/jj715889.aspx 适用于: SharePoint Server 2013 利用使用事件,您可以跟踪用户与 ...

  3. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  4. WebRTC for UWP

    首先还是简单的介绍下webRTC吧: WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2 ...

  5. iOS设计模式之原型模式

    原型模式 基本理解 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节 ...

  6. 阿里云ECS/Ubuntu下JDK、Tomcat、MySQL安装记录

    今天六一儿童节,然后... ... ... ... 然后就是父亲节呀孩子们!!! ———————————————————————割———————————————————————— 同事需要JDK.To ...

  7. Linux线程学习(二)

    线程基础 进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段.代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换   线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, ...

  8. 【转】初识CGI

    一.基本原理 CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口.通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器 ...

  9. Orchard扩展 自定义后台管理导航菜单 Admin Menu

    金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉. 金天:看源码永远是Coder学习的最快捷路径.     看本文需要对Orchard大致体系, 特别是Mo ...

  10. rails开发demo(一)搭建环境

    环境 ubuntu 14.04 为了安装rails4.2 和 ruby 2.2.2,这是目前稳定的最新版本,需要先安装rvm sudo apt-get update sudo apt-get inst ...