//接口类
public interface Square {
public void printHeight();
public void printWidth();
}
//实现接口类的java类
public class Square1 implements Square{
public void printHeight(){
System.out.println("height");
}
public void printWidth(){
System.out.println("width");
}
}
//将在不覆盖方法的情况下创建对象接口的Action类 公共类测试扩展了 someabstractclass {
private Square perfectSquare;
@Override
public void print(){
perfectSquare.printHeight();
}
}
运行此perfectSquare.printHeight()时,它能够在控制台中显示
height
它是如何工作的?
答案 0 :(得分:0)
此声明定义接口类型的变量(import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import {HTTP} from '@ionic-native/http';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage
],
providers: [
StatusBar,
SplashScreen,
HTTP,
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}
):
Square
该变量可以包含对实现private Square perfectSquare;
接口的类(例如Square1
类)的对象的引用。
因此,您可以在该变量上调用Square
接口的方法(例如Square
)。
当然,这假定您在使用变量之前初始化变量。否则,您将在运行时获得perfectSquare.printHeight()
。
鉴于您声称获得的“高度”输出,您可能已将NullPointerException
变量的对象分配给perfectSquare
类(在某些代码中未包含在问题中)。