interface,implement和extends

interface是定义接口的关键字,所谓的接口说白了就是一个规则,用电脑的USB插口打个比方
public interface USB接口{
这个接口只能插标准USB接口();/所谓接口中的方法就是定义了个规范,而我这个标准USB接口中要插鼠标还是优盘,那就是在你的实现类中根据具体情况来看了/
}
而implement就是实现接口的关键字,你要是现实了一个接口,那就必须实现里边的方法,接着上边的例子说
public class 类名 implement USB接口{
//现在就要具体实现刚才接口中定义的方法了,
接口中的方法(){
我这个接口是插鼠标的;
}
就是在你的类的原来的基础上又引进了别的方法,好比电脑,有触摸板,但引进个USB接口我可以插鼠标,可以插音箱等,是功能扩展
extendes,是继承的关键字,是子类继承父类的功能和属性
,还用电脑打比方,电脑是一个类,有显示器,键盘这些属性,笔记本电脑也是一个类,它具有电脑的全部属性,但是比电脑又多了其他属性和功能,笔记本电脑是从电脑那里派生出来的,这样,我们称电脑是父类,笔记本是子类,同理台式机也是电脑的子类,一个类可以有多个子类,但一个类只能有一个直接父类
interface和extendes的区别
interface实现接口必须实现接口中的全部方法
extendes是继承了父类的属性和方法,但可能永远都用不上

在Java中,一个类可以同时使用 `extends` `implements` 关键字来定义其继承关系接口实现。具体来说,`extends` 用于继承一个具体的类或抽象类,而 `implements` 用于实现一个或多个接口。这种机制允许Java类在保持单继承语义的同时,通过接口实现多继承的行为。 ### 类同时使用 `extends` `implements` 的语法 Java类的声明可以按照以下语法结构同时使用 `extends` `implements`: ```java class SubClass extends SuperClass implements Interface1, Interface2, ... { // 类体 } ``` 其中: - `SubClass` 是当前定义的子类。 - `SuperClass` 是该类继承的父类。 - `Interface1, Interface2, ...` 是该类实现的一个或多个接口。 例如: ```java class Animal { /* 父类定义 */ } interface Movable { void move(); } interface Eatable { void eat(); } class Dog extends Animal implements Movable, Eatable { public void move() { System.out.println("Dog moves by walking."); } public void eat() { System.out.println("Dog eats meat."); } } ``` 在该示例中,`Dog` 类继承了 `Animal` 类,并同时实现了 `Movable` `Eatable` 接口。 ### 继承与接口实现的优先级 Java中类只能继承一个父类,但可以实现多个接口。这意味着 `extends` 后面只能跟一个类名,而 `implements` 后面可以跟多个接口名,用逗号分隔。这种设计使Java在不支持多继承的前提下,仍能通过接口实现多重行为的组合[^2]。 ### 抽象类与接口的结合使用 如果一个类继承自一个抽象类,并且实现了多个接口,则它必须实现抽象类中的所有抽象方法(除非该子类本身也是抽象类),同时也必须实现所有接口中的抽象方法[^3]。 例如: ```java abstract class Animal { abstract void speak(); } interface Movable { void move(); } class Dog extends Animal implements Movable { void speak() { System.out.println("Woof!"); } public void move() { System.out.println("Dog moves."); } } ``` 在这个例子中,`Dog` 类必须实现 `Animal` 类的抽象方法 `speak()` `Movable` 接口的 `move()` 方法。 ### 实际应用场景 这种结合方式常用于构建具有共同行为但又需要继承具体实现的场景。例如,在图形用户界面(GUI)开发中,一个组件类可能继承自 `JButton`,同时实现 `ActionListener` 接口以响应用户事件。 ```java import javax.swing.*; import java.awt.event.*; class MyButton extends JButton implements ActionListener { MyButton() { setText("Click me"); addActionListener(this); } public void actionPerformed(ActionEvent e) { System.out.println("Button clicked!"); } } ``` 上述代码展示了如何结合 `extends` `implements` 来创建一个具有交互功能的按钮。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值