Oop 如何在dart中实现继承?
我希望有一个类继承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,
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,
);
}
}
要开始学习语言,我建议阅读语言教程。