java里实现一个接口的类必须要实现接口里的所有方法吗

如题所述

一、实现接口或继承抽象类的非抽象子类必须实现接口的所有方法或抽象类的所有抽象方法。

接口中的所有方法均为抽象方法,抽象类中包含非抽象方法和抽象方法。如果一个非抽象子类实现了接口,那么该子类必须实现父接口的所有方法。如果一个非抽象子类继承了抽象类,那么该子类必须实现抽象类的所有抽象方法。


二、实现方案

(一)实现接口

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();
    }
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-31

实现接口或继承抽象类的子类必须实现接口的所有方法或抽象类的所有抽象方法。

实现方案:

本回答被网友采纳
第2个回答  推荐于2018-03-02
如果是抽象类要实现接口,可以实现部分或者一个都不实现就行,要是具体类就必须实现所有的方法本回答被提问者和网友采纳
第3个回答  2016-09-23
a)若一个普通类实现了接口,那么,该普通类必须实现接口中所有的抽象方法。
b)若一个抽象类实现了接口,那么,该抽象类可以实现接口中的抽象方法,也可以不实现。
c)若一个普通的子类继承了抽象父类,该抽象的父类又实现了接口,那么,该普通的子类必须得重写,抽象父类中所有的抽象方法,并且,还必须得实现抽象的父类尚未实现的抽象方法。
第4个回答  2018-03-01
谁说的,默认方法就不需要实现

java里实现一个接口的类必须要实现接口里的所有方法吗
(一)实现接口 1. 定义接口 \/** * 接口:表示人类行为 *\/interface Behavor {\/** * 抽象方法:“吃饭”方法 *\/void eat();\/** * 抽象方法:“睡觉”方法 *\/void sleep();} 2. 定义子类,实现接口 \/** * 子类:表示人类,实现“行为”接口 *\/class Person implements Behavor {\/** ...

java里实现一个接口的类必须要实现接口里的所有方法吗
java是只支持单继承的,这样有很多不便。为了解决这个问题,采用接口的方法,java支持多实现,就是一个类可以实现多个接口,在实现接口的同时还可以继承一个类,你实现了这个接口也类似于继承了这个接口。接口中的方法都是抽象的,没有方法体的,其作用就是让子类实现的,方法默认有public abstract 接口中...

Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?
不一定,关键要看子类是否是抽象类。如果子类是非抽象类,则必须实现接口中的所有方法;如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!1、抽象类定义 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的...

java中,实现一个接口的类,必须实现这个接口的全部方法吗?
一般类必须全部实现,抽象类 可以只实现一部分方法。

当一个类实现一个接口时,它必须实现该接口中的所有方法。(判断题)
必须实现该接口中的所有方法。也可以自定义接口中没有的方法。抽象类实现某个接口,可以不实现所有接口的方法,可以由它的子类实现。public interface A {\/\/定义一个接口 public void show();\/\/定义一个接口方法 } public abstract class AExtend implements A{\/\/抽象类实现接口A,但可以不实现show...

一个java抽象类实现一个接口时,是否必须覆盖接口中所有的方法?
是的,只要该类实现一个接口就必须实现该接口的所有方法..哦...补充下,就如楼下说的,[抽象类可以不实现接口的方法,但该类必须声明为抽象类,让他的子类来实现. 如果他的子类还是抽象类那就再由子类的子类去实现,直到继承该类的类不是抽象类为止.]前提是所继承该类的派生类是不是抽象类来衡量是否...

java implements是什么意思?
当一个类使用了implements关键字并实现了一个接口,那么该类必须实现接口中的所有方法。在Java中,接口是一种纯抽象的数据类型,与类类似,但不能被实例化。Java中的接口提供了一种规范化的方式定义对象之间的通信。使用implements关键字实现接口可以帮助开发者更好地管理代码,降低代码耦合度。在Java中,...

java 实现接口 必须实现全部方法吗
必须要实现,不然不能new对象

java接口和类有什么区别?
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。接口与类的区别:接口不能用于实例化对象。接口没有构造方法。接口中所有...

java里面implements
1. 接口的定义与功能:在Java中,接口是一种完全抽象的类,它只能包含抽象方法和常量。这意味着接口中定义的所有方法都没有方法体,只有方法的签名。接口定义了一种协议或规范,实现该接口的类必须遵循这个协议或规范。2. implements关键字的作用:当一个类使用implements关键字来声明它要实现某个接口时...

相似回答