java抽象和接口的理解_Java接口实现与抽象类的区别理解 | 彬菌
版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创!
恰饭广告
接口:接口是抽象方法的集合。接口通常以interface来声明。
接口注意事项:
1、严格来说,接口是用来实现(implements),而不是继承(extends)。
2、接口对象不能直接使用关键字new进行实例化,可以利用子类对象的向上转型进行实例化。
3、接口必须要有子类,子类可以实现(implements)多个接口,而且一个接口也能继承另一个接口。
4、接口的成员只能是常量,不能是变量。如String name;(变量)。String name=bing;(常量)。
5、接口的成员和方法一般都是对外开放的(public) ,【private 、protected 、abstract】不能去修饰接口的常量。【protected、private、static、final】不能去修饰接口的方法。
6、定义接口方法和常量的时候就算没有写上public,那么最终的访问权限也是public,而不是default。
7、为了节省打字时间,接口的方法默认都是public abstract修饰。
接口的示例代码:
public interface OneInterface { //接口1
public static final String oneName = "小明";//全局常量
public abstract void msgOne();//公共抽象方法,无return
}
interface TwoInterface{ //接口2
public static final String twoName = "小红";//全局常量
public abstract String msgTwo();//公共抽象方法,有return
}
要去实现接口的子类:
public class Test implements OneInterface,TwoInterface{ //多接口实现
@Override
public void msgOne() { //子类去实现接口1的方法
System.out.println(oneName);
}
@Override
public String msgTwo() { //子类去实现接口2的方法
System.out.println(twoName);
return twoName;
}
public static void main(String[] args){
Test t=new Test(); //子类实例对象
t.msgOne(); //对象调用方法
t.msgTwo();
}
}
接口的作用:(不是三言两语就能说清楚的)
1、解决了java的单一继承(extends)。
抽象类:abstract修饰的类。
抽象类注意事项:
1、abstract 可以修饰类或方法,但不可以修饰成员和构造方法。
2、抽象类对象不能通过new关键字实例化。
3、抽象方法不在声明它的类中实现,但必须在某个子类中重写。
4、abstract 关键字不能应用于 static、private 、 final 修饰的方法,因为这些方法不能被重写。
5、抽象类不一定要有抽象方法,但有抽象方法的类必定是抽象类。
抽象类代码例子:
public abstract class Abstract {
String oneName="小明";
String twoName="小红";
public abstract void msgOne(); //抽象类自己的不能实现的方法
public abstract String msgTwo();
static void test(){ //抽象类自己的可以实现的方法
System.out.println("小明\n小红");
}
public static void main(String[] args){
test(); //抽象类不能创建对象,所以用static修饰方法,方便调用
}
}
继承抽象类的子类:
public class Test extends Abstract{ //继承抽象类
@Override
public void msgOne() { //重写了抽象类的方法
System.out.println(oneName);
}
@Override
public String msgTwo() { //重写了抽象类的方法
System.out.println(twoName);
return twoName;
}
public static void main(String[] args){
Test t=new Test(); //子类实例对象
t.msgOne(); //对象调用方法
t.msgTwo();
}
}
运行结果:(相同)
小明
小红
接口与抽象类的区别:
1、接口多实现,抽象单继承。
2、抽象类中有自己可以实现的方法体,但接口不行。
3、抽象类可以有静态代码块和静态方法,但接口不行。
4、图:
最后:仔细认真理解!
让我恰个饭吧.ヘ( ̄ω ̄ヘ)
支付宝 ——————- 微信
恰饭广告
java抽象和接口的理解_Java接口实现与抽象类的区别理解 | 彬菌相关推荐
- java中获取绝对值的方法_Java完美判断绝对值的两种方法 | 彬菌
版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 if-else语句判断: import java.util.Scanner; public class Absol ...
- java接口方法实现_Java接口的简单定义与实现方法示例
本文实例讲述了Java接口的简单定义与实现方法.分享给大家供大家参考,具体如下: 1.接口是Java中最终要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成. 2.接口的 ...
- java接口的继承_Java 接口多继承
按照理解,一般都是说Java 类是单继承,但可以实现多个接口.但是可以通过接口来实现类的多继承.(如何通过接口来实现多继承???) 那么就一直以为Java里面是单继承,今天看FutureTask源码的 ...
- java抽象类接口举例代码_Java接口和抽象类实例分析
本文实例讲述了Java的接口和抽象类.分享给大家供大家参考.具体分析如下: 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相 ...
- java接口编程题_Java接口练习题
1.说出下面程序的执行结果: interface InterfaceA { String S = "good "; void f(); } abstract class Class ...
- java接口的关键字_Java 接口 interface关键字
1.概念:一种特殊的类,有全局常量和公共方法组成 定义接口用interface关键字 2.语法: //中括号"[ ]"的含义:你可继承父接口,也可不继承,是可选的 [修饰符] (a ...
- java中implements是什么意思_Java中implements和extends的区别
看到java中很多类有使用implements和extends,那么这两种用法有哪些区别呢,今天我们来分析一下. 简单说:1.extends是继承父类,只要那个类不是声明为final或者那个类定义为a ...
- 用java比较abc大小的程序_Java中 abc + '/'和abc + /的区别
好吧,写这篇博客又是因为一个有趣的帖子.原问题是"String str = "abc" + '/';和"abc" + "/";的区 ...
- java私有属性和私有方法_Java接口–历年来Java 9之旅–默认方法和私有方法
java私有属性和私有方法 介绍 Java接口已经比Java版本进行了更多的演变,而Java 8和Java 9则有所发展.在本文中,我们将介绍接口在Java 8之前的样子以及如何在Java 8和Jav ...
最新文章
- [mmu/cache]-cache的一些基本概念介绍
- 净核心vs节点js您应该选择什么
- Embree:照片级光线追踪内核
- Django中的 返回json对象的方式
- 关于一些信息学数论问题例题的讨论
- 【C++】判断指定元素是否在vector中的若干种方法小结
- NYOJ 300 amp;amp; hdu 2276 Kiki amp; Little Kiki 2 (矩阵高速功率)
- PHP问题Parse error: syntax error, unexpected end of file in
- 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结【依赖库源码包】
- linux scp 安装包,linux安装scp命令
- 可以将pdf转换成jpg图片格式的方法
- 186.MultiAutoCompleteTextView
- 也谈谈印度人的职场话题
- tushare获取沪深300指数历史_tushare正确爬取 指数数据
- wdcp虚拟主机管理系统注入漏洞
- Laravel下用户权限系统 的解决方案Zizaco/Entrust
- c语言 的表示方法,c语言运算符号的表示方法
- python 矩阵转置
- 按照lfw pairs.txt的格式生成自己的pairs.txt
- linux 共享文件夹 安装,linux – Vagrant并在共享文件夹中安装包
热门文章
- html标签slot,HTML slot 标签
- mysql bin日志备份_mysql之binlog日志备份还原
- qt修改程序图标名称_解决Qt应用程序添加icon图标,修改窗口图标以及添加系统托盘问题...
- 116. Leetcode 1143. 最长公共子序列 (动态规划-子序列问题)
- 开启大数据时代谷歌三篇论文-Mapreduce
- 实战项目一:爬取西刺代理(获取代理IP)
- Anaconda 查找安装的环境,以及移除旧环境命令
- Python编程基础:第三十三节 文件复制Copy a File
- 从0开始构建你的api网关--Spring Cloud Gateway网关实战及原理解析
- 微服务实践分享(9)文档中心