JAVA面对对象(五)——接口
接口由全局常量和公共的抽象方法组成,接口的定义格式:
interface 接口名称{
全局常量;
抽象方法;
}
接口中的抽象方法必须定义为public访问权限,在接口中如果不写也默认是public访问权限
接口的定义:
interface A{
public static final String AUTHOR = "张宇"; //定义全局常量
public abstract void print(); //定义抽象方法
public abstract String getInfo(); //定义抽象方法
}
但是在接口的定义中已经声明了接口是由全局常量和抽象方法组成的,所以可以简化为以下格式:
interface A{
String AUTHOR = "张宇"; //等价于:public static final String AUTHOR = "张宇";
void print(); //等价于:public abstract void print();
String getInfo(); //等价于:public abstract String getInfo();
}
与抽象类一样,接口若要使用也必须通过子类,子类通过implement关键字实现接口:
class 子类 implement 接口A,接口B,...{
}
实现接口:
interface A {
public String AUTHOR = "张宇";
public void print();
public String getInfo();
}
interface B {
public void say();
}
class X implements A,B{ //子类同时实现两个接口
@Override
public void say() { //覆写接口B中的抽象方法
System.out.println("Hello World");
}
@Override
public void print() { //覆写接口A中的抽象方法
System.out.println("姓名:"+AUTHOR);
}
@Override
public String getInfo() { //覆写接口A中的抽象方法
return "Hello";
}
}
public class Demo {
public static void main(String[] args) {
X x = new X();
x.say(); //调用被覆写过的方法
x.print();
}
}
除此之外,接口也可以继承,且多继承
interface 子接口 extends 父接口A,父接口B,...{
}
如果一个子类又要继承抽象类又要继承接口,可用以下格式:
class 子类 extends 抽象类 implement 接口A,接口B,...{
}
JAVA面对对象(五)——接口的更多相关文章
- java 复制对象 (克隆接口 与 序列化)
关于java对象复制我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递,而很多时候对于对象传递我们也 ...
- java 面对对象(抽象 继承 接口 多态)
什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接 ...
- java面对对象 关键字this super
this:this是指向对象本身的一个指针,成员函数内部指向当前类的对象 其实this主要要三种用法: 1.表示对当前对象的引用! 2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是 ...
- java面对对象(六)--内部类、匿名内部类
内部类 可以在一个类的内部定义另一个类这种类成为内部类或嵌套类,比如: class Outer{ … class Inner{ …. } } class Outer1{} // 这个Inner1不是O ...
- java面对对象入门(4)-程序块初始化
Java实例初始化程序是在执行构造函数代码之前执行的代码块.每当我们创建一个新对象时,这些初始化程序就会运行. 1.实例初始化语法 用花括号创建实例初始化程序块.对象初始化语句写在括号内. publi ...
- JAVA面对对象(四)——抽象类
抽象类的作用类似“模板”,可以根据它的格式来修改.创建新的类:但是不能直接由抽象类创建对象只能通过抽象类派生出新的类,再由它来创建对象:抽象类的使用同样是单继承,即一个子类只能继承一个抽象类 抽象类的 ...
- JAVA面对对象(三)——Super、static、final关键字
Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class P ...
- JAVA面对对象(二)——继承、方法的覆写
1.继承就是基于已存在的类构造一个新类,继承已存在的类就能复用类的方法和属性,并且能够添加新的方法和属性.也就是子类和父类 2.一个父类可以拥有多个子类,一个子类只允许有一个父类 3.用extends ...
- JAVA面对对象(一)——封装
1.封装思想:将对象的属性和行为封装起来的载体是类,类通常对客户隐藏其实现的细节 2.封装就是将属性私有化(private),并提供公共的方法(public)访问私有属性 3.通过封装,实现对属性数据 ...
随机推荐
- Nginx禁止目录执行php文件权限
location ~ /dir/.*.(php|php5)?$ { deny all; } 禁止dir目录执行php文件权限 .csharpcode, .csharpcode pre { font-s ...
- oracle的order by排序中空字符串处理方法
1.缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2.使用nvl函数 nvl函数可以将输入参数为空时转换为一特定值,如 ...
- mysql 拒绝访问的解决办法
java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect to thi ...
- WPFの实现word的缩放效果
ms-word做出的效果令人十分欣喜,那么如何用wpf达到这个效果,下面我们来进行讨论. 界面上我用一个WrapPanel作为父级控件,动态添加InkCanvas作为子控件 <Grid> ...
- YOLO2 (2) 测试自己的数据
Windos10 linux同样过程 现有问题: 本文过程在linux下类似,可以正常通过.windons下,运行python脚本出现问题,无法正常输出0001.txt(标定文件),所以只能使用lin ...
- 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践
2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...
- ethereum/EIPs-1271 smart contract
https://github.com/PhABC/EIPs/blob/is-valid-signature/EIPS/eip-1271.md Standard Signature Validation ...
- PAT A1015 Reversible Primes (20 分)——进制转换,质数
A reversible prime in any number system is a prime whose "reverse" in that number system i ...
- ubuntu 14.04 sudo apt-get 简单 安装 ffmpeg
一种方法是这样的sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt-get in ...
- Excel 2007 底层实现方式
一.EXCEL的底层实现 能力有限,了解的比较浅,有不足之处望指正,首先看下图: 一. excel2007是使用xml格式来存储的,把一个excel文件后缀改为.zip,打开之后就直接可以看到一个ex ...