Oop 如何在dart中实现继承?

Oop 如何在dart中实现继承?,oop,inheritance,dart,flutter,Oop,Inheritance,Dart,Flutter,我希望有一个类继承Dart中另一个类的一些属性。最好的方法是什么 这是我的父类: class Photo { final String id; final String owner, server, secret, title; final int farm, isfamily, ispublic, isfriend; final String url; Photo( {this.id, this.owner, this.secret,

我希望有一个类继承Dart中另一个类的一些属性。最好的方法是什么

这是我的父类:

class Photo {
  final String id;
  final String owner, server, secret, title;
  final int farm, isfamily, ispublic, isfriend;
  final String url;

  Photo(
      {this.id,
      this.owner,
      this.secret,
      this.server,
      this.farm,
      this.title,
      this.ispublic,
      this.isfriend,
      this.isfamily,
      this.url});

  factory Photo.fromJson(Map<String, dynamic> parsedJson) {
    return new Photo(
        id: parsedJson['id'],
        owner: parsedJson['owner'],
        secret: parsedJson['secret'],
        server: parsedJson['server'],
        farm: parsedJson['farm'],
        title: parsedJson['title'],
        ispublic: parsedJson['ispublic'],
        isfriend: parsedJson['isfriend'],
        isfamily: parsedJson['isfamily'],
        url: parsedJson['url_m']);
  }
} 
班级照片{
最终字符串id;
最终字符串所有者、服务器、机密、标题;
最终int农场,isfamily,ispublic,isfriend;
最终字符串url;
照片(
{this.id,
这位老板,
这个秘密,
这个.server,
这个农场,
这个名字,
这是公开的,
这是我的朋友,
这是我的家庭,
此文件名为.url});
factory Photo.fromJson(Map parsedJson){
返回新照片(
id:parsedJson['id'],
所有者:parsedJson['owner'],
秘密:parsedJson['secret'],
服务器:parsedJson['server'],
农场:parsedJson['farm'],
标题:parsedJson['title'],
ispublic:parsedJson['ispublic'],
isfriend:parsedJson['isfriend'],
isfamily:parsedJson['isfamily'],
url:parsedJson['url_m']);
}
} 
这是我要创建的子类:

class gPhoto : Photo //inherits Photo
{
  string ownername; 
  string dateadded; 

  gPhoto(
          {this.ownername,
           this.dateadded
          });

  factory gPhoto.fromJson(Map<String, dynamic> parsedJson) {

        return new Photo(
        ownername: parsedJson['ownername'], 
        dateadded: parsedJson['dateadded'']);
}
class-gPhoto:Photo//继承Photo
{
字符串所有者名称;
已添加字符串;
gPhoto(
{this.ownername,
这是我添加的
});
工厂gPhoto.fromJson(Map parsedJson){
返回新照片(
ownername:parsedJson['ownername'],
dateadded:parsedJson['dateadded']);
}

这行吗?Photo类的工厂将与我的新类一起工作,还是我必须为gPhoto创建一个单独的类来映射json?

您需要检查dart语法,它与C等语言有点不同,使用
进行继承

这是你自己做这件事的方式:

class Photo {
  final String id;
  final String owner, server, secret, title;
  final int farm, isfamily, ispublic, isfriend;
  final String url;

  Photo(
      {this.id,
      this.owner,
      this.secret,
      this.server,
      this.farm,
      this.title,
      this.ispublic,
      this.isfriend,
      this.isfamily,
      this.url});

  factory Photo.fromJson(Map<String, dynamic> parsedJson) {
    return new Photo(
        id: parsedJson['id'],
        owner: parsedJson['owner'],
        secret: parsedJson['secret'],
        server: parsedJson['server'],
        farm: parsedJson['farm'],
        title: parsedJson['title'],
        ispublic: parsedJson['ispublic'],
        isfriend: parsedJson['isfriend'],
        isfamily: parsedJson['isfamily'],
        url: parsedJson['url_m']);
  }
}

class gPhoto extends Photo {
  final String ownername;
  final String dateadded;

  gPhoto(
      {id,
      owner,
      secret,
      server,
      farm,
      title,
      ispublic,
      isfriend,
      isfamily,
      url,
      this.ownername,
      this.dateadded})
      : super(
            id: id,
            owner: owner,
            secret: secret,
            server: server,
            farm: farm,
            title: title,
            ispublic: ispublic,
            isfamily: isfamily,
            url: url);

  factory gPhoto.fromJson(Map<String, dynamic> parsedJson) {
    final photo = Photo.fromJson(parsedJson);
    final ownername = parsedJson['ownername'];
    final dateadded = parsedJson['dateadded'];
    return gPhoto(
      dateadded: dateadded,
      ownername: ownername,
      farm: photo.farm,
      id: photo.id,
      isfamily: photo.isfamily,
      isfriend: photo.isfriend,
      ispublic: photo.ispublic,
      owner: photo.owner,
      secret: photo.secret,
      server: photo.server,
      title: photo.title,
      url: photo.url,
    );
  }
}
班级照片{
最终字符串id;
最终字符串所有者、服务器、机密、标题;
最终int农场,isfamily,ispublic,isfriend;
最终字符串url;
照片(
{this.id,
这位老板,
这个秘密,
这个.server,
这个农场,
这个名字,
这是公开的,
这是我的朋友,
这是我的家庭,
此文件名为.url});
factory Photo.fromJson(Map parsedJson){
返回新照片(
id:parsedJson['id'],
所有者:parsedJson['owner'],
秘密:parsedJson['secret'],
服务器:parsedJson['server'],
农场:parsedJson['farm'],
标题:parsedJson['title'],
ispublic:parsedJson['ispublic'],
isfriend:parsedJson['isfriend'],
isfamily:parsedJson['isfamily'],
url:parsedJson['url_m']);
}
}
类gPhoto扩展了Photo{
最终字符串所有者名称;
最后添加的字符串;
gPhoto(
{id,
所有者,
秘密
服务器,
农场,
标题
我是公开的,
我的朋友,
isfamily,
网址,
这是我的名字,
此文件(已添加日期})
:超级(
id:id,
业主:业主,
秘密:秘密,
服务器:服务器,
农场:农场,
标题:标题,,
ispublic:ispublic,
isfamily:isfamily,
url:url);
工厂gPhoto.fromJson(Map parsedJson){
最终照片=photo.fromJson(parsedJson);
最终所有者名称=parsedJson['ownername'];
final dateadded=parsedJson['dateadded'];
返回gPhoto(
dateadded:dateadded,
ownername:ownername,
农场:photo.farm,
id:photo.id,
isfamily:photo.isfamily,
isfriend:photo.isfriend,
ispublic:photo.ispublic,
所有者:photo.owner,
秘密:照片,秘密,
服务器:photo.server,
标题:photo.title,
url:photo.url,
);
}
}

要开始学习语言,我建议阅读语言教程。