抽象方法的定义语法:
访问修饰符 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. Oozie调度报错——ORA-00918:未明确定义列

    Oozie在执行sqoop的时候报错,同样的SQL在sqoop中可用,在oozie中不可用: Caused by: java.sql.SQLSyntaxErrorException: ORA-0091 ...

  2. Execute SQL Task 参数和变量的映射

    Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值.对于不同的Connection Manager,在Task中需要使用 ...

  3. 解决adb.exe' and can be executed.

    百度google大家多说的是任务管理器 kill掉adb 或者重启adb server,但我任务管理器就没有adb ,猜测是某个程序占用了adb端口.于是按此思路查找. 5037为adb默认端口 查看 ...

  4. py2exe使用中遇到的几个问题

    问题: 在使用py2exe对所写的python脚本打包成.exe可执行程序时,遇到两个问题: 问题1: RuntimeError: maximum recursion depth exceeded w ...

  5. JS 原型,检索,更新,引用等

    <script type="text/javascript"> var myObject=maker({ first:f, last:1, state:s, city: ...

  6. Web APi之过滤器执行过程原理解析【二】(十一)

    前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...

  7. BAT及各大互联网公司2014前端笔试面试题--JavaScript篇

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确, ...

  8. 如何通过一个类名找到它属于哪个jar包?

    最简单的方式: 如果用eclipse选中类名,然后ctrl shift T,就可看到包含比类的包了 最有效的方式: import java.net.URL; /** * 检查class文件属于哪个ja ...

  9. C#对SQL Server数据库的备份与还原

    备份数据库: string connectionString = "server=服务器名称;database=数据库名;uid=登入名;pwd=登入密码";         // ...

  10. mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析

    一:SqlMapConfig.xml配置文件的内容和配置顺序如下 properties(属性) settings(全局配置参数) typeAiases(类型别名) typeHandlers(类型处理器 ...