java新手笔记21 接口
1.接口
package com.yfs.javase;
public interface IDemo1 {//interface 接口
public /*abstract*/ void method1();//默认抽象方法 public
}
class Child1 implements IDemo1 {
@Override
public void method1() {
// 实现接口的方法
System.out.println("call method1()");
}
}
2.接口示例1
package com.yfs.javase;
public interface IFly {
public void fly();
}
3.实现接口
package com.yfs.javase;
public class Bird implements IFly {
@Override
public void fly() {
System.out.println("鸟在飞....");
}
}
class Wuya extends Bird {
@Override
public void fly() {
System.out.println("乌鸦在飞....");
}
}
class Butterfly implements IFly {
@Override
public void fly() {
System.out.println("蝴蝶在飞....");
}
}
4.IRun接口
package com.yfs.javase;
public interface IRun {
int a = 10;//默认public static final
public void run();
}
/*public*/ interface ISwim {
}
class Horse implements IRun {
@Override
public void run() {
System.out.println("马在跑..." + a);
}
}
5.接口多继承
package com.yfs.javase;
//接口可以多继承
public interface ITest extends IFly, IRun, ISwim { }
6.Person
package com.yfs.javase;
public class Person {
private String name;
private int age;
private char sex;
public Person() {
}
public Person(String name) {
this.name = name;
}
public Person(String name, int age, char sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public void introduce() {
System.out.println("I am Person....");
}
public String toString() {
return "姓名:" + name + " 年龄 :" + age + " 性别:" + sex;
}
public void speak() {
System.out.println(name + " 工作了吗?");
}
public void sleep() {
System.out.println(name + " 睡觉了吗?");
}
public void eat() {
System.out.println(name + " 吃了吗?");
}
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 char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
7.超人 继承 人,实现 IRun,IFly 接口
package com.yfs.javase;
public class SuperMan extends Person implements IRun, IFly {
@Override
public void run() {
System.out.println("超人在跑....");
}
@Override
public void fly() {
System.out.println("超人在飞...");
}
}
8.接口 测试
package com.yfs.javase;
public class Test1 {
public static void main(String[] args) {
IFly f1 = null;
// new IFly();//接口不能实例化
f1 = new Bird();
f1.fly();
f1 = new Butterfly();
f1.fly();
callMethod(new Wuya());
IRun r1 = new Horse();
r1.run();
callMethod(new SuperMan());
}
public static void callMethod(IFly f) {
f.fly();
}
}
9.测试2
package com.yfs.javase;
public class Test2 {
public static void main(String[] args) {
SuperMan s1 = new SuperMan();
s1.setName("Tom");
s1.speak();
s1.run();
callMethod(new Horse());
callMethod(s1);
}
public static void callMethod(IRun r) {
r.run();
}
}
java新手笔记21 接口的更多相关文章
- java新手笔记22 接口示例2
1.USB package com.yfs.javase; public interface USB { //定义规范 public void read(); public void write(); ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- Java学习笔记之接口
一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(Str ...
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- java新手笔记32 jdk5新特性
1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...
- java新手笔记31 集合实现类
Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...
- java新手笔记27 监听器类
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- java新手笔记20 抽象类模板(letter)
1.抽象类 package com.yfs.javase; //信模板 public abstract class Templater { public abstract String toName( ...
随机推荐
- 使用 Visual Studio 分析器找出应用程序瓶颈(转)
使用 Visual Studio 分析器找出应用程序瓶颈 Hari Pulapaka and Boris Vidolov 本文讨论: 以性能瓶颈为目标 应用程序代码分析 比较分析数据 性能报告 本文使 ...
- 洛谷P1118 数字三角形游戏
洛谷1118 数字三角形游戏 题目描述 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行这样的操作,显然每次构成的序列都比上一次的序列长度少1,直 ...
- 【解决】Oracle数据库实现ID自增长
Oracle数据库要实现ID的自增长,需要创建一个序列和触发器来实现,略微有一点点麻烦,但是也是可以解决的. 直接上地址,首先,http://www.wlcrane.com/article.aspx? ...
- 【转载】HBase 数据库检索性能优化策略
转自:http://www.ibm.com/developerworks/cn/java/j-lo-HBase/index.html 高性能 HBase 数据库 本文首先介绍了 HBase 数据库基本 ...
- HDU3695 - Computer Virus on Planet Pandora(AC自动机)
题目大意 给定一个文本串T,然后给定n个模式串,问有多少个模式串在文本串中出现,正反都可以 题解 建立好自动机后.把文本串T正反各匹配一次,刚开始一直TLE...后面找到原因是重复的子串很多以及有模式 ...
- https://hub.docker.com/
- ServletContext获取项目真实路径
import javax.servlet.ServletContext; import org.springframework.web.context.ServletContextAware; /** ...
- EF搜索数据自动将表名变复数问题
原因这个是自己生成的需要在model加Table 其他博主写了aweier2011
- 国外一些好用的UX/UI设计工具和资源分享
国外一些好用的UX/UI设计工具和资源分享 你今天使用的设计工具也许不再适合以后的网页和APP设计项目了.新的工具不断的推出市场,目标只有一个,让你的工作更快.更容易而且工作成效更好.今天分享的这些U ...
- Visual C++中的编译器优化
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Visual C++中的编译器优化.