接口里不能包括字段,构造函数,析构函数,静态成员或常量等,否则会导致错误

定义一个借口,接口封装了矩形的长和宽,而且还包含一个自定义的方法以计算矩形的面积。然后定义一个类,继承自该接口,在该类中实现接口中自定义方法。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace Test06
 7 {
 8     interface ImyInterface
 9     {
10         /// <summary>
11         /// 长
12         /// </summary>
13         int Width
14         {
15             get;
16             set;
17         }
18         /// <summary>
19         /// 宽
20         /// </summary>
21         int Height
22         {
23             get;
24             set;
25         }
26         /// <summary>
27         /// 计算矩形面积
28         /// </summary>
29         int Area();
30     }
31     class Program : ImyInterface//继承自接口
32     {
33         private int width = 0;
34         private int height = 0;
35         /// <summary>
36         /// 长
37         /// </summary>
38         public int Width
39         {
40             get
41             {
42                 return width;
43             }
44             set
45             {
46                 width = value;
47             }
48         }
49         /// <summary>
50         /// 宽
51         /// </summary>
52         public int Height
53         {
54             get
55             {
56                 return height;
57             }
58             set
59             {
60                 height = value;
61             }
62         }
63         /// <summary>
64         /// 计算矩形面积
65         /// </summary>
66         public int Area(int Width,int Height)
67         {
68             return Width * Height;
69         }
70         static void Main(string[] args)
71         {
72             Program program = new Program();//实例化Program类对象
73             ImyInterface imyinterface = program;//使用派生类对象实例化接口ImyInterface
74             imyinterface.Width = 5;//为派生类中的Width属性赋值
75             imyinterface.Height = 3;//为派生类中的Height属性赋值
76             Console.WriteLine("矩形的面积为:" + imyinterface.Area(3,5));
77         }
78     }
79 }

下面是正确的:
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace Test06
 7 {
 8     interface ImyInterface
 9     {
10         /// <summary>
11         /// 长
12         /// </summary>
13         int Width
14         {
15             get;
16             set;
17         }
18         /// <summary>
19         /// 宽
20         /// </summary>
21         int Height
22         {
23             get;
24             set;
25         }
26         /// <summary>
27         /// 计算矩形面积
28         /// </summary>
29         int Area();
30     }
31     class Program : ImyInterface//继承自接口
32     {
33         int width = 0;
34         int height = 0;
35         /// <summary>
36         /// 长
37         /// </summary>
38         public int Width
39         {
40             get
41             {
42                 return width;
43             }
44             set
45             {
46                 width = value;
47             }
48         }
49         /// <summary>
50         /// 宽
51         /// </summary>
52         public int Height
53         {
54             get
55             {
56                 return height;
57             }
58             set
59             {
60                 height = value;
61             }
62         }
63         /// <summary>
64         /// 计算矩形面积
65         /// </summary>
66         public int Area()
67         {
68             return Width * Height;
69         }
70         static void Main(string[] args)
71         {
72             Program program = new Program();//实例化Program类对象
73             ImyInterface imyinterface = program;//使用派生类对象实例化接口ImyInterface
74             imyinterface.Width = 5;//为派生类中的Width属性赋值
75             imyinterface.Height = 3;//为派生类中的Height属性赋值
76             Console.WriteLine("矩形的面积为:" + imyinterface.Area());
77         }
78     }
79 }
时间: 2024-11-03 21:12:54

接口里不能包括字段,构造函数,析构函数,静态成员或常量等,否则会导致错误的相关文章

Vue-admin工作整理(十): actions(模拟接口请求实现组件字段更新)

思路:通过提交一个 mutation,而不是直接变更状态,它可以包括异步操作,通过请求接口,定义一个方法,第一个参数为对象,在里面能够提取到一些东西,比如:commit,这是一个方法,调用这个commit去提交一个mutation import { getAppName } from '@/api/app' const actions = { // 请求接口,修改appName字段数据,定义一个updateAppName方法,第一个参数为对象,在里面能够提取到一些东西,比如:commit,这是一

TP5.1 使用Collection对不同接口隐藏不同的字段

1.在Config文件里的dataBase.php字段 resultset_type 设置为 'collection' 2.使用model查询数据时, a.以find结尾的查询,返回的是数组,需要使用Collection类将数组转为数据集,如: // 通过数据集隐藏接口不需要的字段参数,而不影响其他接口 $collection = Collection::make($result); $result = $collection->hidden(['summary']); b.以select结尾的

Java接口里定义成员变量 说明

首先你要弄清接口的含义.接口就是提供一种统一的'协议',而接口中的属性也属于'协议'中的成员.它们是公共的,静态的,最终的常量.相当于全局常量. 在interface里面的变量都是public static final 的.所以你可以这样写: public static final int i=10; 或则 int i=10;(可以省略掉一部分,在接口里的成员变量默认就是public static final) 注意在声明的时候要给变量赋予初值 解释: 首先你要弄清接口的含义.接口就是提供一种统

C\C++ vector 构造函数 &amp; 析构函数

#include <iostream> #include <vector> using namespace std; class Obj { public: Obj(void){cout<<"Obj(void)"<<" "<<countOne<<endl;countOne++;} Obj(int x){cout<<"Obj(int x)"<<"

样式里常用的字段截取方式

<td style="width:120px; word-break: break-all;"><%= switch.download_url %></td> word-break overflow-wrap word-wrap 参考: 你真的了解word-wrap和word-break的区别吗? Difference between overflow-wrap and word-break overflow: hidden; white-space

MyBatis里json型字段到Java类的映射

一.简介 我们在用MyBatis里,很多时间有这样一个需求:bean里有个属性是非基本数据类型,在DB存储时我们想存的是json格式的字符串,从DB拿出来时想直接映射成目标类型,也即json格式的字段串字段与Java类的相互类型转换. 当然,你可以为每个类写一个MyClassTypeHandler,但问题是要为每个类都写一个TypeHandler,过于繁琐. 有了泛型,一个通用的TypeHandler直接搞定. 二.源码 package com.xxx.typehandler; import c

drupal7 如何自定义内容部链接,并预留hook接口(自定义视图字段比较有用)

$links = array(); //获取系统菜单,所有权限都默认进行了验证 $links['case-edit']=menu_get_item('node/'.$row->nid.'/edit'); //自定义链接地址 $links['custom_url']=array( 'title' => t('custom_url'), 'href' => 'custom/url', 'attributes' => array('class' => array_merge(cdi

接口里可以有变量么?

浅谈为什么Java接口中不允许定义变量? 它们是公共的,静态的,最终的常量.相当于全局常量.抽象类是不“完全”的类,相当于是接口和具体类的一个中间层.即满足接口的抽象,也满足具体的实现. 如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性.有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性.这当然没有问题,但是考虑这样的情况.如果接口 A 中有一个public 访问权限的静态变量 a.按照 Java 的语义,我们可以不通过实现接口的对象来访问变

java 在接口里函数不能重载?

项目里使用hession远程调用serviceRemote接口,而serviceRemote接口里有两个save方法,参数分别是CpCredential对象和List,但运行发现会报莫名其妙的错. 后来同事提醒,将接口方法名分别改为save 和saveList两个不同方法名后就正常了. 难道是java bug? java -version java version "1.7.0_55"Java(TM) SE Runtime Environment (build 1.7.0_55-b13