Java【接口详解】&&【与抽象类的对比】

目录

1.接口是什么?

2.如何定义接口?

2-1.接口定义格式

2-2.定义接口的规则

3.和抽象类的对比

4.接口相关习题(选自PTA)

7-8 定义接口(Biology、Animal)、类(Person)、子类(Pupil)


1.接口是什么?

  • 接口和类是两个并列的结构,不过可以将接口理解为一种特殊的类(仅由全局常量和公共的抽象方法组成
  • 接口里的方法全为抽象,因此也可以说接口是一些方法特征的集合,接口里只是声明,具体的实现交给相应的类去实现

2.如何定义接口?

2-1.接口定义格式

 

2-2.定义接口的规则

 

3.和抽象类的对比

 

4.巩固习题(选自PTA)

[注]在PTA里提交,public类要命名为Main,注释掉导入的本地包package homework3;

7-8 定义接口(Biology、Animal)、类(Person)、子类(Pupil)

此题用于练习基本使用和回顾以上知识:

package homework3;

import java.util.Scanner;

public class InterfaceTest8 {
	public static void main(String[] args) {
		/*
		 * (4)在测试类Main中,用Pupil类创建一个对象zhangsan。
		 * 尝试从键盘输入学校信息给zhangsan,获取到该信息后输出该学校信息,格式为“我的学校是XXX”;
		 * 依次调用zhangsan的breathe()、eat()、sleep()、think()方法
		 */
		Pupil zhangsan = new Pupil();
		Scanner scanner = new Scanner(System.in);
		String schoolName = scanner.next();
		zhangsan.setSchool(schoolName);
		System.out.println("我的学校是"+zhangsan.getSchool());
		zhangsan.breath();
		zhangsan.eat();
		zhangsan.sleep();
		zhangsan.think();
	}
}
/*
 * (1)定义Biology(生物)、Animal(动物)2个接口,
 * 其中Biology声明了抽象方法breathe( ),Animal声明了抽象方法eat()和sleep( )
 */
interface Biology{ //省略了public
	void breath(); //省略了public abstract
}
interface Animal{
	void eat();
	void sleep();
}
/*
 * (2)定义一个类Person(人)实现上述2个接口,实现了所有的抽象方法,同时自己还有一个方法think()
 * breathe()、eat()、sleep()、think()四个方法分别输出: 我喜欢呼吸新鲜空气 我会按时吃饭 早睡早起身体好 我喜欢思考
 */
class Person implements Biology,Animal{ //一个类可以实现多个接口
	//实现接口里的所有抽象方法(只能在接口中运用之前的省略写法,类中依然按照类成员方法覆盖的规则,需要加上public)
	public void breath() {
		System.out.println("我喜欢呼吸新鲜空气");
	}
	public void eat() {
		System.out.println("我会按时吃饭");
	}
	public void sleep() {
		System.out.println("早睡早起身体好");
	}
	//自己特有的方法think
	public void think() {
		System.out.println("我喜欢思考");
	}
}
/*
 * (3)定义Person类的子类Pupil(小学生),有私有的成员变量school(学校),
 * 公有的成员方法setSchool( )、getSchool()分别用于设置、获取学校信息。
 */
class Pupil extends Person{
	private String school=null;

	public String getSchool() {
		return school;
	}

	public void setSchool(String school) {
		this.school = school;
	}
}

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值