定义USB设备—手机:
class Phone implements USB {
public void install() {
System.out.println('安装手机驱动程序。') ;
}
public void work() {
System.out.println('手机与电脑进行工作。') ;
}
}
测试主类:
public class TestDemo {
public static void main(String args[]) {
Computer c = new Computer() ;
c.plugin(new Phone()) ;
c.plugin(new Print()) ;
c.plugin(new MP3());
}
}
通达信财务数据接口,接口的实际应用
定义USB设备—MP3:
class MP3 implements USB {
public void install() {
System.out.println('安装MP3驱动程序。') ;
}
public void work() {
System.out.println('进行MP3拷贝。') ;
}
}
如果要进行开发,要先开发出USB通达信财务数据接口,接口标准,然后设备厂商才可以设计出USB设备。
在通达信财务数据接口,接口中如果使用了static去定义一个内通达信财务数据接口,接口,它表示一个外部通达信财务数据接口,接口:
interface A{
public void funA();
static interface B{//使用了static,是一个外部通达信财务数据接口,接口
public void funB();
}
}
class X implements A.B{
@Override
public void funB() {
}
}
从通达信财务数据接口,接口的概念上来讲,通达信财务数据接口,接口只能由抽象方法和全局常量组成,但是内部结构是不受概念限制的,正如抽象类中可以定义抽象内部类一样,在通达信财务数据接口,接口中也可以定义普通内部类、抽象内部类和内部通达信财务数据接口,接口,范例如下,在通达信财务数据接口,接口中定义一个抽象内部类:
interface A{
public void funA();
abstract class B{//定义一个抽象内部类
public abstract void funB();
}
}
运行结果:
通达信财务数据接口,接口A的抽象方法print()
通达信财务数据接口,接口B的抽象方法get()
如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个通达信财务数据接口,接口,所以通达信财务数据接口,接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有。
运行结果:
通达信财务数据接口,接口B的抽象方法get()
范例:定义一个通达信财务数据接口,接口
interface A{//定义一个通达信财务数据接口,接口
public static final String MSG = 'hello';//全局常量
public abstract void print();//抽象方法
}
通达信财务数据接口,接口的使用
由此可见,从继承关系来说通达信财务数据接口,接口的限制比抽象类少:一个抽象类只能继承一个抽象父类,而通达信财务数据接口,接口可以继承多个通达信财务数据接口,接口;一个子类只能继承一个抽象类,却可以实现多个通达信财务数据接口,接口
我们发现,从定义结构来讲,A和B两个通达信财务数据接口,接口没有任何直接联系,但这两个通达信财务数据接口,接口却拥有同一个子类。我们不要被类型和名称所迷惑,因为实例化的是X子类,而这个类对象属于B类的对象,所以以上代码可行,只不过从代码的编写规范来讲,并不是很好。
这样会不会带来什么问题呢?如果子类子类中的覆写方法也不是public,我们来看:
package com.wz.interfacedemo;
interface A{
String MSG = 'hello';
void print();
}
class X implements A{
void print() {
System.out.println('通达信财务数据接口,接口A的抽象方法print()');
}
}
public class TestDemo {
public static void main(String[] args){
A a = new X();
a.print();
}
}
在日常的生活之中,通达信财务数据接口,接口这一名词经常听到的,例如:USB通达信财务数据接口,接口、打印通达信财务数据接口,接口、充电通达信财务数据接口,接口等等。
这是因为通达信财务数据接口,接口中默认是public修饰,若子类中没用public修饰,则访问权限变严格了,给子类分配的是更低的访问权限。在定义通达信财务数据接口,接口的时候强烈建议在抽象方法前加上public,子类也加上:
interface A{
String MSG = 'hello';
public void print();
}
class X implements A{
public void print() {
System.out.println('通达信财务数据接口,接口A的抽象方法print()');
}
}
范例:
interface A{
public void funA();
}
interface B{
public void funB();
}
//C通达信财务数据接口,接口同时继承了A和B两个通达信财务数据接口,接口
interface C extends A,B{//使用的是extends
public void funC();
}
class X implements C{
@Override
public void funA() {
}
@Override
public void funB() {
}
@Override
public void funC() {
}
}
以上的代码实例化了X类的对象,由于X类是A和B的子类,那么X类的对象可以变为A通达信财务数据接口,接口或者B通达信财务数据接口,接口对象。我们把测试主类代码改一下:
public class TestDemo {
public static void main(String[] args){
A a = new X();
B b = (B) a;
b.get();
}
}
定义USB设备—打印机:
class Print implements USB {
public void install() {
System.out.println('安装打印机驱动程序。') ;
}
public void work() {
System.out.println('进行文件打印。') ;
}
}
范例:
interface A{//定义一个通达信财务数据接口,接口A
public static final String MSG = 'hello';//全局常量
public abstract void print();//抽象方法
}
interface B{//定义一个通达信财务数据接口,接口B
public abstract void get();
}
abstract class C{//定义一个抽象类C
public abstract void change();
}
class X extends C implements A,B{//X类继承C类,并实现了A和B两个通达信财务数据接口,接口
@Override
public void print() {
System.out.println('通达信财务数据接口,接口A的抽象方法print()');
}
@Override
public void get() {
System.out.println('通达信财务数据接口,接口B的抽象方法get()');
}
@Override
public void change() {
System.out.println('抽象类C的抽象方法change()');
}
}
好,没任何问题,我们再来做个验证:
public class TestDemo {
public static void main(String[] args){
A a = new X();
B b = (B) a;
b.get();
System.out.println(a instanceof A);
System.out.println(a instanceof B);
}
通达信财务数据接口,接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合。通达信财务数据接口,接口通常以interface来声明。一个类通过继承通达信财务数据接口,接口的方式,从而来继承通达信财务数据接口,接口的抽象方法。
在电脑上应用此通达信财务数据接口,接口:
运行结果:
安装手机驱动程序。
手机与电脑进行工作。
安装打印机驱动程序。
进行文件打印。
安装MP3驱动程序。
进行MP3拷贝。
未完待续。。。
运行结果:
Exception in thread 'main' java.lang.IllegalAccessError: com.wz.interfacedemo.X.print()V
at com.wz.interfacedemo.TestDemo.main(TestDemo.java:22)
对于通达信财务数据接口,接口,里面的组成只有抽象方法和全局常量,所以很多时候为了书写简单,可以不用写publicabstract或者publicstaticfinal。并且,通达信财务数据接口,接口中的访问权限只有一种:public,即:定义通达信财务数据接口,接口方法和全局常量的时候就算没有写上public,那么最终的访问权限也是public,注意不是default。以下两种写法是完全等价的:
在Java中,一个抽象类只能继承一个抽象类,但一个通达信财务数据接口,接口却可以使用extends关键字同时继承多个通达信财务数据接口,接口。
运行结果:
通达信财务数据接口,接口B的抽象方法get()
true
true
范例:
package com.wz.interfacedemo;
interface A{//定义一个通达信财务数据接口,接口A
public static final String MSG = 'hello';//全局常量
public abstract void print();//抽象方法
}
interface B{//定义一个通达信财务数据接口,接口B
public abstract void get();
}
class X implements A,B{//X类实现了A和B两个通达信财务数据接口,接口
@Override
public void print() {
System.out.println('通达信财务数据接口,接口A的抽象方法print()');
}
@Override
public void get() {
System.out.println('通达信财务数据接口,接口B的抽象方法get()');
}
}
public class TestDemo {
public static void main(String[] args){
X x = new X();//实例化子类对象
A a = x;//向上转型
B b = x;//向上转型
a.print();
b.get();
}
}
现在假设每一个USB设备只有两个功能:安装驱动程序、工作。定义一个USB的标准:
interface USB { // 操作标准
public void install() ;
public void work() ;
}
等价于
interface A{
String MSG = 'hello';
void print();
}
对于子类而言,除了实现通达信财务数据接口,接口外,还可以继承抽象类。若既要继承抽象类,同时还要实现通达信财务数据接口,接口的话,使用一下语法格式:
class 子类 [extends 父类] [implemetns 通达信财务数据接口,接口1,通达信财务数据接口,接口2,...] {}
由于通达信财务数据接口,接口里面存在抽象方法,所以通达信财务数据接口,接口对象不能直接使用关键字new进行实例化。通达信财务数据接口,接口的使用原则如下:通达信财务数据接口,接口必须要有子类,但此时一个子类可以使用implements关键字实现多个通达信财务数据接口,接口;通达信财务数据接口,接口的子类,那么必须要覆写通达信财务数据接口,接口中的全部抽象方法;通达信财务数据接口,接口的对象可以利用子类对象的向上转型进行实例化。
文章为作者独立观点,不代表股票交易接口观点