Java类实现某个接口后,是否需要实现接口中的所有方法?
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!
博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!
吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…
一、业务场景
📣 问题描述:Java类实现某个接口后,是否需要实现接口中的所有方法?
📖 答 : 如果是普通的类,必须去实现接口里所有的方法,如果是抽象类,则可以不去实现。
首先定义一个卖火车票的接口:定义两个方法
创造一个类来实现买票接口,先实现一个方法,很明显idea给出提示爆红
Class 'TrainStation' must either be declared abstract or implement abstract method 'pay()' in 'SellTickets'
继续实现第二个方法后发现idea去除爆红
我们发现如果该类是抽象类不实现对应方法也不会爆红
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!
📝 相关代码感兴趣实践运行
public interface SellTickets {
void sell();
void pay();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
/**
* @version v1.0
* @ClassName: TrainStation
* @Description: 火车站类
* @Author:
*/
public class TrainStation implements SellTickets {
public void sell() {
System.out.println("火车站卖票");
}
@Override
public void pay() {
System.out.println("实现pay方法");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
二、抽象类学习
📖 Java中抽象类就是使用abstract关键字修饰的一种特殊的类,抽象类可以不去实现接口的抽象方法,可以由继承这个抽象类的子类去实现。
抽象类:包含抽象方法的类。如果一个类包含抽象方法,那么该类必须是抽象类,使用 abstract 关键字修饰
public abstract class 类名 {
//抽象类中可以包含变量、常量,抽象方法,非抽象方法
}
- 1
- 2
- 3
案例学习
public abstract class Person {
public abstract void play();
}
- 1
- 2
- 3
抽象类不能实例化,不能直接创建对象。抽象类是用来被继承的,继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类,使用 abstract 关键字修饰
抽象方法:抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型,方法名称和所需要的参数,没有方法体,也就是说抽象方法只需要声明而不需要事先,当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract
修饰符 abstract 返回值类型 方法名(参数列表);
- 1
public abstract void play();
- 1
抽象方法不能用private、final、static、native修饰
注意事项:抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类,抽象类本身不具备实际的功能,只能用于派生其子类,抽象类中可以包含构造方法,但是构造方法不能被声明为抽象,抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。
📝抽象类与普通类的区别
- 抽象类使用abstract修饰;普通类没有abstract修饰
- 抽象类不能实例化;普通类可以实例化
- 抽象类可以包含抽象方法,也可以包含非抽象方法;普通类不能有抽象方法
📣非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
📚愿我们奔赴在各自的热爱里!
文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。
原文链接:blessing.blog.csdn.net/article/details/125628588
- 点赞
- 收藏
- 关注作者
评论(0)