文档章节

Java基础5

DouDouLee
 DouDouLee
发布于 2016/05/09 10:29
字数 855
阅读 20
收藏 1

1、抽象类(abstract class)与接口

抽象类:一个类中含有抽象方法,这个类就是抽象类。可以通过把类或类中的方法声明为abstract来表示一个类是抽象类。只要包含一个抽象方法的类就得声明为抽象类,抽象类可以声明方法的存在而不去实现它。声明为抽象的方法不能包含方法体。抽象类的子类为父类的所有方法提供其具体实现,否则它也是抽象类。抽象类不能被实例化,但可以创建一个对象指向其子类的一个实例。抽象类可以包含部分方法的实现。

接口:接口是方法的集合。接口中的所有方法都没有方法体。接口中的成员变量都是static final类型。抽象类与接口的相同点:

1)都不能被实例化

2)接口的实现类或抽象类的子类只有实现了接口或抽象类中的方法后才能被实例化。

抽象类与接口的不同点:

1)接口只有定义,其方法不能在接口中实现,只有implements接口才能实现接口中定义的方法。抽象类可以有定义和实现,其方法可以在抽象类中被实现。

2)接口需要implements,一个类可以实现多个接口,抽象类只能被extends,不能多愁继承。

3)接口强调特定功能实现,设计理念是“has-a”关系。抽象类强调所属关系,设计理念为"is-a"关系。

4)接口中的成员变量默认为public static final且必须给其赋初值,成员方法都是public、abstract的且只能被这两个关键字修饰。

抽象类可以有自己的数据成员变量,默认为 default,也可以被定义为private/protected/public。也可以有非抽象的成员方法,抽象类中的抽象方法不能用private/static/synchronized/native等访问修饰符修饰,方法必须以分号结束,且不带花括号。

5)接口被应用于实现比较常用的功能,便于以后维护或添加、删除方法;抽象类更倾向于充当公共类的角色,不适用于以后重新对里面的代码进行修改。

抽象类多用于在同类事物中有无法描述的方法的场景,子类与父类之间存在逻辑上的层次结构时,可以使用抽象类。

接口多用于不同类之间,定义不同类之间的通信规则。

抽象类可以继承接口,也可以继承具体类,也可以有静态main方法。

2、this、super

this用来指当前实例对象。

class People{
 String name;
 public People(String name){
 
  this.name = name;//区分对象的成员变量与方法的形参

  //this.name为成员变量String name.

 }
}

super可以用来访问父类的方法或成员变量。当子类的成员变量和方法名与父类相同时会覆盖父类的,这时访问父类的成员变量和方法时只能通过super关键字。

class Base{
 public void f(){
  System.out.println("Base f");
 }
}
class Sub extends Base{
 
 public void Sub(){
 
  super.f();//子类调用父类的同名f()用super且必须为其第一条语句
  
  System.out.println("Sub f");
 }
}

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
DouDouLee
粉丝 6
博文 95
码字总数 45242
作品 0
西安
大数据开发培训:0基础学习Java编程语言有哪些知识点?

Java 技术通用、高效、具有平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,学习Java首先要知道学习知识点有哪些。在这就用加米谷大数据培训...

加米谷大数据
07/25
0
0
Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874
04/01
0
0
Java__线程---基础知识全面实战---坦克大战系列为例

今天想将自己去年自己编写的坦克大战的代码与大家分享一下,主要面向学习过java但对java运用并不是很熟悉的同学,该编程代码基本上涉及了java基础知识的各个方面,大家可以通过练习该程序对自...

x-knight_勋爵
2016/04/02
0
0
《成神之路-基础篇》JVM——JVM参数及调优(已完结)

Java内存模型,Java内存管理,Java堆和栈,垃圾回收 本文是[《成神之路系列文章》][1]的第一篇,主要是关于JVM的一些介绍。 持续更新中 JVM参数及调优 JVM实用参数系列 成为Java GC专家(5)...

05/05
0
0
怎样学习java,漫谈java学习之路

Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。 Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。 1. 思考一下...

jccur
2011/08/26
0
9

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
46分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
48分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部