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();
	}
}
时间: 2024-10-12 19:48:05

java新手笔记21 接口的相关文章

java新手笔记22 接口示例2

1.USB package com.yfs.javase; public interface USB { //定义规范 public void read(); public void write(); } 2.UDisk读写 package com.yfs.javase; public class UDisk implements USB { @Override public void read() { System.out.println("从U盘读取数据..."); } @Over

Java学习笔记之接口

一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(String msg); } 定义接口使用关键字interface 修饰符interface前面的public可以省略,如果省略,则采用默认访问控制,即只有在相同包结构的代码才可以访问此接口 接口不可以有构造方法(区别于类中的构造方法) 接口里面的所有成员,包括常量.方法等都是public访问权限,所以在

Java学习笔记_21_Collection接口

21.Collection接口: 1>容器类的添加.删除: · add(Object o) :将对象添加到集合. · Remove(Object o) :删除集合中与o相匹配的对象. 2>容器中类的查询: · Size(): 返回集合中元素的个数. · isEmpty(): 判断集合中是否包含元素. · contains(Object o): 判断集合中是否包含指定元素. · iterator(): 返回集合的一个迭代器,用来访问该集合的元素. · contains(Collection c)

Java学习笔记_23_List接口实现类

23.List接口实现类: List接口继承了Collection接口,它是一个允许存在重复项的有序集合. 1>实现类ArrayList: ArrayList类支持可随需要而增长的动态数组.数组列表以一个原大小被创建,当超过了它的大小, 类集自动增大,当对象被删除后,数组就可以缩小. 优点:ArrayList类对于使用索引取出元素用较高的效率,他可以用索引快速定位对象. 缺点:ArrayList类对于元素的删除或插入速度较慢. 构造方法: · ArrayList(): 构造一个初始容量为10的空

Java学习笔记_24_Map接口

24.Map接口: Map接口定义了存储"键(key)-值(value)映射对"的方法,Map中不能有重复的"键", Map实现类中储存的"键-值"映射对是通过键来唯一标识的,Map底层的"键"使用Set来存放的, 所以Map中的映射对的"键"对应的类必须重写hashCode()和equals()方法, 常用String作为Map的"键".  Map的添加.删除操作: · Object 

Java学习笔记21

Objects是Java 7新增的一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是"空指针"安全的. Objects实现的方法如下: requireNonNull(T)与requireNonNull(T,String)在源码中定义如下: public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; } publ

Java学习笔记_22_Set接口的实现类

22.Set接口的实现类: Set接口存放的元素是无序的且不包括反复元素. 1>实现类HashSet: HashSet类依据元素的哈希码进行存放,取出时也能够依据哈希码高速找到.HashSet不保存元素的加入的顺序. 样例: import java.util.HashSet; import java.util.Iterator; public class Student { public static void main(String[] args) { HashSet<String>

java新手笔记20 抽象类模板(letter)

1.抽象类 package com.yfs.javase; //信模板 public abstract class Templater { public abstract String toName() ; public abstract String fromName(); public abstract String getContent(); public void show() { System.out.println("尊敬的" + toName()); System.out

我的java学习笔记(21)关于框架定位

1.AWT和Swing中框架和组件类的继承层次. 2.组件类的很多方法是以获取或设置方法对形式出现的. public String getTitle(); public void setTitle(Stirng title); 3.对于类型为boolean的属性,获取方法由is开头. public boolean isLocationByPlatform(); public void setLocationByPlatform(boolean b); 4.如果没有明确地指出指定框架的大小,所有框