抽象方法的定义语法:
访问修饰符 abstract <返回类型> <方法名>(参数列表);
 
在语法中:abstract关键字表示该方法被定义为抽象方法
 
抽象方法和普通方法的区别:
1、抽象方法小修饰符abstract,普通方法不需要
2、普通方法有方法体,抽象方法没有方法体
**********************************************************
抽象类的定义语法:
abstract class <类名>{ }
 
在语法中:abstract关键字表示该类被定义为抽象类
 
抽象类和普通类的区别:
1、抽象类需要修饰符abstract,普通类不需要
2、普通类可以实例化,抽象类不能实例化
**********************************************************
定义一个抽象类:
public abstract class 类名称{
修饰符 abstract 返回类型 方法名();
修饰符 返回类型 方法名(){方法体}
}
 
抽象方法只能定义在抽象类中。但是抽象类中可以包含抽象方法,也可以包含普通方法,还可以包含普通类包含的一切成员。
**********************************************************
接口的定义语法:
public interface 接口名{
//接口成员
}
 
在语法中:
1、和抽象类不同,定义接口使用interface修饰符,访问修饰符只能是public,且可选。
2、接口成员可以是全局常量和公共的抽象方法。
与抽象类一样,接口要使用也必须通过子类,子类通过implements关键字实现接口。
 
实现接口的语法:
public 类名 implements 接口名{
实现方法
普通方法
}
 
在语法中:
1、实现接口使用implements关键字
2、实现接口的类必须实现接口中定义的所有抽象方法。接口的实现类允许包含普通方法。
 
例:定义和实现USB接口,进行数据传输。关键代码:
 
public interface UsbInterface{
void service();
public class UDisk implements UsbInterface{
public void service(){
system.out.println("连接USB口,开始传输数据");
}
}
}
 
 
例:定义USB风扇类,实现USB接口,获得电流,让风扇转动。关键代码:
 
public class UsbFan impements UsbInterface{
public void service(){
system.out.println("连接USB口,获得电流,风扇开始转动。")
}
}
 
 
例:编写测试类,实现U盘传输数据,实现USB风扇转动。关键代码:
public class Test{
public static void main(string[] args){
//1、U盘
UsbInterface uDisk = new UDisk();
uDisk.service();
//2、USB风扇
UsbInterface usbFan = new UsbFan();
usbFan.service();
}
}
**********************************************************
接口继承的语法:
修饰符 interface 接口名 extends 父接口1,父接口2,……{
常量定义
方法定义
}
 
一个普通类只能继承一个父类,但能同时实现多个接口,也可以同时继承抽象类和实现接口
 
实现多个接口的语法:
class 类名 extends 父类名 implements 接口1,接口2,……{
类的成员
}
 
**********************************************************
定义和实现接口,需要注意的内容:
1、接口和类、抽象类是一个层次的概念,命名规则相同。
2、修饰符如果是public,该接口在整个项目中可见。如果省略修饰符,该接口只在当前包可见。
3、接口中可以定义常量,不能定义变量。接口中的属性都默认用“public static final”修饰,即接口中的属性都是全局静态常量。接口中的常量必须在定义时指定初始值。
4、接口中的所有方法都是抽象方法,接口中的方法都默认为public。
5、和抽象类一样,接口同样不能实例化,接口中不能有构造方法。
6、类只能继承一个父类,但可以通过implements实现多个接口。一个类必须实现接口的全部方法,否则必须定义为抽象类。一个类在继承父类的同时又实现了多个接口时,extends必须位于implements之前
 

java基础知识总结(2)的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  3. Java基础知识系列——String

    最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...

  4. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

  5. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  6. java基础知识梳理

    java基础知识梳理 1 基本数据类型

  7. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  8. Java 基础知识(一)

    Java基础知识篇: 一.关键字解释 1. final:修饰非抽象类,非抽象方法和属性, 以及修饰方法参数,代表“无法改变的”.出于对设计或者效率的考虑使用该关键字. final类无法被继承,fina ...

  9. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  10. java 基础知识二 基本类型与运算符

    java  基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...

随机推荐

  1. 微冷的雨ASP.NET MVC之葵花宝典(MVC)

    微冷的雨ASP.NET MVC之葵花宝典 By:微冷的雨 第一章 ASP.NET MVC的请求和处理机制. 在MVC中: 01.所有的请求都要归结到控制器(Controller)上. 02.约定优于配 ...

  2. .NET 基础 一步步 一幕幕 [.NET 简介]

    .NET 简介 .NET是 Microsoft XML Web services 平台.是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented ar ...

  3. vSphere Client 编辑虚拟机属性的问题

    编辑虚拟机属性的时候, 出现: vpxclient.vmconfig.cpuid 初始值设置异常之类的,重置了, 并将注册表中的所有vmvare 相关键值删除了, 还是一样的.. 后面参照https: ...

  4. Spark读取HBase

    背景:公司有些业务需求是存储在HBase上的,总是有业务人员找我要各种数据,所以想直接用Spark( shell) 加载到RDD进行计算 摘要: 1.相关环境 2.代码例子 内容 1.相关环境 Spa ...

  5. angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testServe

    angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testSer ...

  6. Knockout中文开发指南(完整版API中文文档) 目录索引

    a, .tree li > span { padding: 4pt; border-radius: 4px; } .tree li a { color:#46cfb0; text-decorat ...

  7. 彻底理解nth-child和nth-of-type的区别。

    最近又有些天没写博客了,主要写一篇下来,太浪费时间了,其实这不是根本,根本是最近比较忙,忙什么呢?最近发现一个问题觉得学习速度太慢了,时间倒是花的很多,但大部分时间都花在无意义的事情上,所有打算改变政 ...

  8. Qt on Android:创建可伸缩界面

    使用 Qt 来开发 Android 应用,也需要适配不同移动设备,适配多种多样的屏幕和分辨率.这次我们大概来讲一下如何使用 Qt 提供的机制来创建可伸缩的界面. DPI 必须要解释一下 DPI . D ...

  9. XSD文件生成C#VO实体类

    最近公司要做一个项目,需要和现有的其他项目对接,由于不知道他们的数据库,只有XSD文件.所以,我们在修改相应的程序时,就需要根据他们提供的XSD文件,来写我们的VO实体类,由于我写过根据Oracle数 ...

  10. JavaScript == 、!=、===、!===的比较

    ; '; ; test == num //true 相同类型 相同值 test === num //true 相同类型 相同值 test !== num //false test与num类型相同,其值 ...