文档章节

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");
 }
}

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Java基础6
下一篇: Java基础4
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
《成神之路-基础篇》JVM——JVM参数及调优(已完结)

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

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

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

x-knight_勋爵
2016/04/02
0
0
怎样学习java,漫谈java学习之路

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

jccur
2011/08/26
0
9

没有更多内容

加载失败,请刷新页面

加载更多

Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
1
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
1
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
4
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
3
0
腾讯与Github的魔幻会面背后的故事…

10月22日,腾讯开源管理办公室有幸邀请到Github新晋CEO Nat Friedman,前来鹅厂参观交流。目前腾讯已经有近70个项目在Github上开源,共获得17w stars,世界排名11位。Github是腾讯开源的主阵...

腾讯开源
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部