文档章节

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首先要知道学习知识点有哪些。在这就用加米谷大数据培训...

加米谷大数据
2018/07/25
0
0
《成神之路-基础篇》JVM——JVM参数及调优(已完结)

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

2018/05/05
0
0
web前端、c++、项目管理、java、php书籍10-40/本,转让

本人因转行,又因经济困难,所以转让一下书籍。按标价出售,人在北京。联系qq:602505 可在东城区、中关村、回龙观等地当面交易。 书新旧程度全部在9成新以上。 点击书名查看书籍介绍和原价。...

匿名网友
2011/02/24
1K
17
Java程序设计经典300例

《Java程序设计经典300例》共分为3篇。 第1篇 基础篇(第1~5章)本篇主要内容包括:Java语言基础、流程控制、数组、字符串和面向对象编程。通过本篇的学习,读者可以掌握Java开发环境的配置...

请叫我院长
2013/12/03
402
0
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
2018/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

苏宁金融红包系统大促海量流量背后的技术支撑

发红包是目前各大互联网公司最常用的营销手段之一,它形式多样,内容丰富。2016 年底苏宁金融开启了红包系统及相关系统的项目开发。 本文将对苏宁金融红包系统的架构部署方式、演变过程、技术...

架构师springboot
2分钟前
0
0
Linux恢复误删除的文件或者目录

2017 年 2 月 1 日 GitLab 数据库被误删引起了广大争议. linux不像windows有个回收站,使用rm -rf *基本上文件是找不回来的。 那么问题来了: 对于linux下误删的文件,我们是否真的无法通过软...

Goopand
3分钟前
0
0
从NeurIPS 2018看AI发展路线!

摘要: 从NeurIPS 2018看AI发展路线! 去年9月份的时候,我发表过一份技术报告,阐述了我认为人工智能最重要的挑战,大概有以下四个方面: ·可伸缩性(Scalability)计算或存储的成本不与神...

阿里云官方博客
4分钟前
0
0
快速入门:selenium自动化测试+ubuntu系统+php语言+firefox/chrome浏览器

前言 selenium可用于界面UI自动化测试,因此也可用于来做一些自动化方面的事情。下面简单总结概括一下,对于一位新手,学习和使用selenium的基本过程。 本文只要针对:selenium自动化测试+ub...

暗夜在火星
6分钟前
0
0
List集合知识总结

转载: 一:集合的概念 集合:保存数量不确定的数据,以及保存具有映射关系的数据的容器,简单的理解就是用于存储数量不等的多个对象的容器。 集合和数组不一样,数组元素既可以是基本类型的值...

小橙子的曼曼
7分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部