java 8-8 接口的练习
/*
老师和学生案例,加入抽烟的额外功能
分析:
老师和学生都具有共同的变量:名字,年龄
共同的方法:吃饭,睡觉
老师有额外的功能:抽烟(设定个接口),部分抽烟 有共同的变量和方法,设一个父类: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 接口的练习的更多相关文章
- 【转】java通用URL接口地址调用方式GET和POST方式
java通用URL接口地址调用方式GET和POST方式,包括建立请求和设置请求头部信息等等......... import java.io.ByteArrayOutputStream; import ...
- Java继承和接口
接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...
- java中set接口的用法
java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- JAVA ,Map接口 ,迭代器Iterator
1. Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...
- java抽象类和接口区别
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- java抽象类与接口的区别及用法
java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...
- 如何让Java和C++接口互相调用:JNI使用指南
如何让Java和C++接口互相调用:JNI使用指南 转自:http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos ...
- Java中的队列:java.util.Queue接口
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...
随机推荐
- 西邮Linux兴趣小组2016免试题
4.28的宣讲会圆满结束(就在写这段话之前不久),对于西邮Linux兴趣小组这一次纳新,身为局外人表示:还是有历史,还是会玩,还是厉害哈. 华丽的分割线里面是自己之前的攻关战略,最后补充了宣讲会上学长 ...
- Eclipse 出现Some sites could not be found. See the error log for more detail.错误 解决方法
Eclipse 出现Some sites could not be found. See the error log for more detail.错误 解决方法 Some sites could ...
- [Angularjs]视图和路由(四)
写在前面 关于angularjs的路由的概念基本上这篇就要结束了,通过学习,以及在实际项目中的实践,还是比较容易上手的.自己也通过angularjs做了一个在app上的一个模块,效果还是可以的. 系列 ...
- [ javascript New Image() ] New Image() 对象讲解
创建一个Image对象:var a=new Image(); 定义Image对象的src: a.src="xxx.gif"; 这样做就相当于给浏览器缓存了一张图片. 图 ...
- [leetcode] Count Primes
Count Primes Description: Count the number of prime numbers less than a non-negative number, n click ...
- Lucene总体架构
Lucene总的来说是:• 一个高效的,可扩展的,全文检索库.• 全部用Java实现,无须配置.• 仅支持纯文本文件的索引(Indexing)和搜索(Search).• 不负责由其他格式的文件抽取纯文 ...
- 【读书笔记】iOS-KVC
一,KVC即键/值编码. 二,KVC的基本调用包括-valueForKey:和-setValue:forKey:. 三,对于KVC,Cocoa自动放入和取出标量值.也就是说,当使用setValueFo ...
- Python学习一入门
一.打印Hello和多行文本 print 打印 后跟单引号或者双引号 多行:3个单引号或者3个双引号 二.算术运算 2.1.加减乖法 默认1/2=0 如果需要小数运算,则需要一个运算术上加.或者.0 ...
- XCode的代码块备份
以上三个的注释可以从下面的代码依据个数拷贝和删除: /** * <#comment#> * * @param <#one#> * * @param <#two#> ...
- Maven学习遇到的第一个错误
现在开始学习maven,我是在极客学院看的视频学习的,学习当然会遇到异常,下面是我遇到的第一个异常 [ERROR] Failed to execute goal org.apache.maven.pl ...