Ionic 3技术汇总

Ionic3类的继承

2018-07-28  本文已影响0人  IT飞牛

先上代码,后期后时间再分析。
父类不需要在任何module中进行引入。只需要在使用的子类头部import就能使用。

父类:base.ts

import { ExxDbProvider } from './../exx-db/exx-db';
import { Injectable } from '@angular/core';
@Injectable()
export class Base {
  constructor(private exxdb: ExxDbProvider, private isHideTabs: boolean = false) {
    this.checkLogin();
  }

  protected checkLogin(): Promise<any> {
    return this.exxdb.checkLogin()
  }

  ionViewWillEnter() {
    if (this.isHideTabs) {
      HideTabs();
    }
  }
  ionViewWillLeave() {
    if (this.isHideTabs) {
      ShowTabs();
    }
  }
}

子类:gztz.ts

import { Base } from './../../../providers/base/base';
import { ExxDbProvider } from './../../../providers/exx-db/exx-db';
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

@IonicPage(
  { name: "gztz" }
)
@Component({
  selector: 'page-gztz',
  templateUrl: 'gztz.html',
})
export class GztzPage extends Base {
  private canload: boolean = true;
  private qjdata: GztzListModel = new GztzListModel();
  private domain: string;
  private exxmodel: any;
  private jiancheng: string;
  constructor(
    public navCtrl: NavController,
    public navParams: NavParams,
    private exxDb: ExxDbProvider) {
    super(exxDb, true);
    // 验证登录
    this.checkLogin().then(() => {
      this.jiancheng = myinfo.School.jiancheng;
      this.domain = myinfo.Domain;
      this.doInfinite();
    })
  }

  ionViewWillEnter() {
    super.ionViewWillEnter();//调用父类中的方法
    console.log("这里是子页面的 ionViewWillEnter");
  }
  ionViewWillLeave() {
    super.ionViewWillLeave();
    console.log("这里是子页面的 ionViewWillLeave");
  }
}

extends

子类继承父类:
1、被private修饰的变量和方法不能被继承;
2、 被final修饰的变量和方法不能被继承;
3、 构造方法不能被继承;
其他的都可以继承,但子类用不用就是另一回事了;

子类继承抽象类:
1、如果子类是非抽象类,则必须实现抽象类中的所有“抽象方法”;
2、如果子类是抽象类,则可以不实现抽象类中的所有方法;

抽象类中可以有成员变量;
抽象类可以包含“抽象方法”和“非抽象方法”;

implements

1、如果子类是非抽象类,则必须实现接口的所有方法;
2、如果子类是抽象类,则可以不实现接口的所有方法,而由子类实现;

接口中没有成员变量;
接口的所有方法均为抽象方法;

参考资料:
https://blog.csdn.net/maomaolaoshi/article/details/78374506?locationNum=6&fps=1
https://segmentfault.com/a/1190000008976996

上一篇 下一篇

猜你喜欢

热点阅读