/*
老师和学生案例,加入抽烟的额外功能
分析:
老师和学生都具有共同的变量:名字,年龄
共同的方法:吃饭,睡觉
老师有额外的功能:抽烟(设定个接口),部分抽烟 有共同的变量和方法,设一个父类: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. 改变mvc web api 支持android ,ios ,ajax等方式跨域调用

    公司一个移动后端的项目用到了 webapi 项目搭建到外网环境共app开发者调用测试接口时遇到了一个问题 接口不允许跨域调用 .查阅资料明白 同源策略原则根据请求报头值 Origin 与回应报头值 A ...

  2. H5前端面试题及答案(1)

    前几天去面试了一家公司,整下改公司的面试题. 1.新的 HTML5 文档类型和字符集是? HTML5 文档类型很简单: <!doctype html> HTML5 使用 UTF-8 编码示 ...

  3. [简介]HTML5 and CSS3

    一.HTML51.语义标签与新增表单控件标签更加语义化headerfooterarticle等 还增加了许多表单控件记得有:进度条,颜色选择,日期等 2.音频,视频标签关键字:audiovideo 他 ...

  4. javascript --- 设计模式之单体模式(一)

    单体是一个用来划分命名空间并将一些相关的属性与方法组织在一起的对象,如果她可以被实例化的话,那她只能被实例化一次(她只能嫁一次,不能二婚). 单体模式是javascript里面最基本但也是最有用的模式 ...

  5. SharePoint中Event Handler的触发

    一直以来对于Event Handler的感觉就是:添加.编辑和删除动作之前和动作之后,我们在SharePoint系统中可以做的一些事情 不过在最近处理的一个问题中,发现它在触发时机上出了一点问题   ...

  6. 忙碌的Nova君 (活动安排问题、贪心算法)

    题目描述 理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用.假设 ...

  7. ipad横竖屏尺寸(转载)

    iPad在横屏模式下,界面区域元素主要由下图所示构成: 横屏主要尺寸:宽度:1024px高度:768px状态栏(Status Bar)高度:20px导航条(Nav Bar)高度:44px主内容区域(M ...

  8. SeekableByteChannel 和 FileChannel

    Java7中引入了SeekableByteChannel接口,允许我们定位到文件的任意位置进行读写.注意这里的写,不是新增式的插入,而是覆盖,当然在文件末尾的写,是新增. java.nio.chann ...

  9. PHP中IP地址与整型数字互相转换详解

    这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下 IP转换成 ...

  10. Uva-11374-Airport Express

    A - Airport Express Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Appoi ...