如:public class User1 implements User{}
之后在User1类中重新再test方法中编写相应的方法代码即可。
备注:接口中是没有方法实现的,之后接口定义,之后在子类中进行具体的方法实现,并且子类必须实现父类的所有方法。
一、实现接口或继承抽象类的非抽象子类必须实现接口的所有方法或抽象类的所有抽象方法。
接口中的所有方法均为抽象方法,抽象类中包含非抽象方法和抽象方法。如果一个非抽象子类实现了接口,那么该子类必须实现父接口的所有方法。如果一个非抽象子类继承了抽象类,那么该子类必须实现抽象类的所有抽象方法。
二、实现方案
(一)实现接口
1. 定义接口
/*** 接口:表示人类行为
*/
interface Behavor {
/**
* 抽象方法:“吃饭”方法
*/
void eat()
/**
* 抽象方法:“睡觉”方法
*/
void sleep()
}
2. 定义子类,实现接口
/*** 子类:表示人类,实现“行为”接口
*/
class Person implements Behavor {
/**
* 姓名
*/
protected String name = null
public Person(String name) {
this.name = name
}
//实现接口的抽象方法
@Override
public void eat() {
System.out.println(name + "正在吃饭......")
}
//实现接口的抽象方法
@Override
public void sleep() {
System.out.println(name + "正在睡觉......")
}
}
3. 定义调用类,调用方法
public class Main {public static void main(String[] args) {
Person p = new Person("张三其")
p.eat()
p.sleep()
}
}
(二)继承抽象类
1. 定义抽象类
/*** 抽象类:表示人类
*/
abstract class Person {
/**
* 姓名
*/
protected String name = null
public Person(String name) {
this.name = name
}
/**
* 抽象方法:吃饭
*/
public abstract void eat()
/**
* 抽象方法:睡觉
*/
public abstract void sleep()
}
2. 定义子类,继承抽象类
/*** 子类:学生类
*/
class Student extends Person {
public Student(String name) {
super(name)
}
//实现抽象类的抽象方法
@Override
public void eat() {
System.out.println("学生" + name + "正在吃饭......")
}
//实现抽象类的抽象方法
@Override
public void sleep() {
System.out.println("学生" + name + "正在吃饭......")
}
}
3. 定义调用类,调用方法
public class Main {public static void main(String[] args) {
Person p = new Student("张三其")
p.eat()
p.sleep()
}
}
一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。
接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的
定义接口
修饰符 interface 接口名 [extends 父接口列表]
{
常量域声明
抽象方法声明
}
class cat implements Animal
{
public void shout ()
{
System.out.print(“喵喵”)
}
}
实现接口
implements
一个类可以实现若干个接口
非抽象类必须实现所有的抽象方法
interface prt
{
public void prtln()
}
class A implements prt{
int a = 3
public void prtln()
{
//输出a
}
}
class B implements prt{
int b = 4
public void prtln()
{
//输出b
}
}
public class MyInterfaceDemo
{
public static void dost(prt c)
{
c.prtln()
}
public static void main(String[] args)
{
A a1 = new A()
B b1 = new B()
MyInterfaceDemo.dost(a1)
MyInterfaceDemo.dost(b1)
}
}