java关于接口的实例

来源:互联网 发布:河北电视新闻网络直播 编辑:程序博客网 时间:2024/04/26 09:35


#接口#

package 接口;/* *  定义一个rec_Area_Peri接口, *  里面有两个方法getArea()和getPerimeter(), *  分别表示“计算面积”和“计算周长”; *  再定义一个Rectangle类,实现接口rec_Area_Peri。 */public interface rec_Area_Peri {abstract int getArea();abstract int getPerimeter();}



#rectangle类#

package 接口;class rectangle implements rec_Area_Peri{int width;int length;public rectangle(int w,int l){width = w;length = l;}public int getArea(){return length * width;}public int getPerimeter(){return 2 * (length + width);}}



#测试Test类#

package 接口;public class Test_interface {public static void main(String[] args) {rectangle rect = new rectangle(30, 40);System.out.println("矩形的面积:    " + rect.getArea());System.out.println("矩形的周长:    " + rect.getPerimeter());}}//1. 在实现类Rectangle中注释掉一个方法后进行编译,看发生了什么?为什么?//error:   The type rectangle must implement the inherited abstract method rec_Area_Peri.getArea()//2. 在实现类Rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?为什么?//error:   Cannot reduce the visibility of the inherited method from rec_Area_Peri//原因:一个类实现一个接口时,必须使接口中的方法是 public 访问控制符//3. 将接口rec_Area_Peri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?为什么?//没有影响,原因:interface 里的方法默认为隐式 public 和 abstract类型//4. 将接口rec_Area_Peri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改?/*    public interface rec_Area_Peri1 {abstract int getArea();}  public interface rec_Area_Peri2 {abstract int getPerimeter();}class rectangle implements rec_Area_Peri1,rec_Area_Peri2{int width;int length;public rectangle(int w,int l){width = w;length = l;}public int getArea(){return length * width;}public int getPerimeter(){return 2 * (length + width);}} */


测试结果:



其他结果不做测试...........




把上述程序的接口改为抽象类,程序实现如下:


# abstract_rec_Area_Peri类 #

package 抽象类;abstract class abstract_rec_Area_Peri {abstract int getArea();abstract int getPerimeter();}

#rectangle1类#

class rectangle1 extends abstract_rec_Area_Peri {int width;int length;public rectangle1(int w,int l){width = w;length = l;}public int getArea(){return length * width;}public int getPerimeter(){return 2 * (length + width);}}

#Test_atstract类#

public class Test_atstract {public static void main(String[] args) {rectangle1 rect1 = new rectangle1(80, 90);System.out.println("矩形的面积:    " + rect1.getArea());System.out.println("矩形的周长:    " + rect1.getPerimeter());}}


测试结果:










0 0
原创粉丝点击