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修饰符来定义,包含抽象方法的类只能被定义成抽象 ...
随机推荐
- JDBC操作,执行数据库更新操作
目标: 使用Connection对象取得Statement实例 使用Statement进行数据增删改. Statement接口 要对数据库操作,要使用Statement完成.此接口可以使用Connec ...
- Github 入门基本操作
翻译自:https://guides.github.com/activities/hello-world/ 文章概述: 什么是GitHub? 创建一个存储库 创建一个分支 做出承诺 打开拉请求 合并拉 ...
- python selenium--常用函数3
ActionChains类鼠标操作的常用方法: 引入ActionChains类:from selenium.webdriver.common.action_chains import ActionCh ...
- Android五天乐(第一天)开发环境的部署,开发流程与调试
由于项目要求參与无线端开发,本着技多不压身的指导精神,决定依旧从web转攻client! 由于之前自己玩过两个月android(实际上仅仅是做了两个有失水准的demo级app),本来以为这次再来学习将 ...
- elasticsearch mapping问题解决
1.报错信息如下: [--16T00::,][WARN ][logstash.outputs.elasticsearch] Could not index event to Elasticsearch ...
- Scroller应用:ListView滑动删除
1.设计思路 在Scroller的应用--滑屏实现中使用Scroller实现滑屏效果,这里使用Scroller与ListView实现相似QQ滑动.然后点击删除功能.设计思路是Item使用Scrolle ...
- List与String的相互转换
List转字符串,用逗号隔开 List<string> list = new List<string>(); list.Add("a"); list.Add ...
- atitit.薄伽梵歌overview attilax 读后感
atitit.薄伽梵歌overview attilax 读后感 1. 唯一一本记录神而不是神的代言人或者先知言论的经典 2 2. 篇章规模,字数 3 3. 内容摘要 3 4. 主要内容 3 4.1. ...
- 电脑不识别USB blaster驱动问题
电脑不识别USB blaster,如下图: 解决办法:手动更新 http://zhidao.baidu.com/link?url=snVT__AsbtmQ4U5EBVN05Yrgv1TPv7AdVYe ...
- python操作sqlserver
# coding=gbk import sys import pymssql #尝试数据库连接 try: conn = pymssql.connect(host="192.168 ...