Java知识点梳理——抽象类和接口
抽象类
1、定义:没有包含足够的信息来描绘一个具体对象的类,不能被实例化,必须被继承;
2、abstract关键字:abstract class定义抽象类,普通类的其它功能依然存在,如变量、方法等;
public abstract class Person{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sayHi(){
System.out.println("Hi");
}
public abstract void sayHello();
}
3、继承抽象类:一个类只能继承一个抽象类,可以实现多个接口;
4、抽象方法:抽象类中一种特别的方法,同样用abstract关键字声明,只包含方法名,没有方法体(上面的
sayHello方法),抽象方法没有具体实现由继承的子类(非抽象类)实现;
a、如果一个类包含抽象方法,那么该类必须是抽象类;
b、子类必须重写父类的抽象方法,或者声明自身为抽象类,最终必须有非抽象子类实现抽象方法;
接口
1、定义:抽象方法的集合,用interface关键字声明,无法被实例化,可以被实现(implements关键字实现接口);
public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public class Student implements Person {
@Override
public void sayHello()
{
System.out.println("Student sayHello"); //实现接口里的方法
}
}
2、特性
a、接口中的方法是隐式的抽象方法(public abstract);
b、接口中的变量隐式的指定为 public static final 变量;
c、接口中的方法不能在接口中实现,只能由实现接口的类来实现;
d、接口允许多继承,extends关键字只需使用一次,其后跟着继承接口;
public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public interface Children {
public void sayHi(); //隐式抽象方法,不必写abstract关键字
} public interface Student extends Children,Person Person {
//类的多继承是不合法,但接口允许多继承
}
抽象类与接口的区别
1、抽象类中的方法可以有方法体,接口没有;
2、抽象类中的成员变量可以是各种类型的,接口中只能是 public static finl 类型;
3、抽象类中可以含有静态代码块和静态方法,接口没有;
4、一个类只能继承一个抽象类,而一个类却可以实现多个接口;
Java知识点梳理——抽象类和接口的更多相关文章
- 牛客网Java刷题知识点之抽象类与接口
不多说,直接上干货! 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于它们的存在才赋予java强大的面向对象的能力. ...
- java基础(四)-----抽象类与接口
抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们 ...
- java 8中抽象类与接口的异同
1.java 8中抽象类与接口的异同 相同点: 1)都是抽象类型: 2)都可以有实现方法(以前接口不行): 3)都可以不需要实现类或者继承者去实现所有方法,(以前不行,现在接口中默认方法不需要实现者实 ...
- Java基础之抽象类与接口
Java基础之抽象类与接口 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候 ...
- Java 中,抽象类与接口之间有什么不同?
Java 中,抽象类和接口有很多不同之处,但是最重要的一个是 Java 中限制一个 类只能继承一个类,但是可以实现多个接口.抽象类可以很好的定义一个家族类 的默认行为,而接口能更好的定义类型,有助于后 ...
- java基础之抽象类与接口的区别
在学习java的过程中,或者是在找工作笔试或面试的时候,如果你是java岗位,那么抽象类与接口的区别无疑是一个大热点,是各大公司都想要考的一个小知识点,下面是我为了9月份秋招自己总结的,若有不对的地方 ...
- java知识点梳理
网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) ...
- java中的抽象类和接口
抽象类和接口本身让面向对象真正实现,一个好的系统可以让抽象类或者接口实现多次复用,如果出现了集成具体类那么肯定是有问题的. 抽象类和接口很相似,很多时候好像功能可以混用,java设计者赋予了很多不一样 ...
- Java笔记:抽象类、接口
这篇笔记主要是抽象类和接口,还有简单介绍下三种设计模式:模板模式.工厂模式.命令模式 1.抽象方法和抽象类(1)抽象方法和抽象类都必须使用abstract修饰符来定义,包含抽象方法的类只能被定义成抽象 ...
随机推荐
- 为何 IntelliJ IDEA 比 Eclipse 更好
http://www.oschina.net/news/26929/why-intellij-is-better-than-eclipse圣战 有一些没有唯一正确答案的“永恒”的问题,例如哪个更好:是 ...
- 自实现部分string类的功能
#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class MyString { publi ...
- POI操作Excel导入和导出
Apache的POI组件是Java操作Microsoft Office办公套件的强大API,当中对Word,Excel和PowperPoint都有支持,当然使用较多的还是Excel.由于Word和Po ...
- 在Linux下如何查CC攻击?
什么是CC攻击?CC攻击就是利用大量代理服务器对目标计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务.那么如何判断查询CC攻击呢?本文主要介绍了一些Linux下判断CC攻击的命令. AD:201 ...
- blender,沿某一轴缩放
scale是等比缩放,要想沿某一轴缩放按一下s+z,或s+x,或s+y.
- Openresty配置文件上传下载
1. 下载包安装Openresty openresty-1.13.6.1下载地址 https://openresty.org/download/openresty-1.13.6.1.tar.gz 安装 ...
- Atitit. 。Jna技术与 解决 java.lang.Error: Invalid memory access
Atitit. .Jna技术与 解决 java.lang.Error: Invalid memory access 1. 原因与解决1 2. jNA (这个ms sun 的)1 3. Code1 4. ...
- Verilog语言:还真的是人格分裂的语言
人气腹语术师天愿在现场披露了被人偶搭档夺取灵魂的腹语术师将妻子杀害的表演节目.天愿真的陷入了多重人格,命令自己杀害妻子和子的人偶的人格出现了.为了不(让自己)杀害和弟子登川有外遇的妻子,天愿提出委托想 ...
- error: Semantic Issue: Interface type cannot be statically allocated
转自:http://hongmin118.iteye.com/blog/1333524 error: Semantic Issue: Interface type cannot be statical ...
- 李洪强iOS经典面试题31-解释垃圾回收的原理
李洪强iOS经典面试题31-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式. 那么,ARC 和垃圾回收对比,有什么优点 ...