《java程序设计基础》接口的实现

1.接口的实现与应用
利用形状接口IShape建造类
package practice;
interface IShape{ //定义接口
static final double PI = 3.14;
abstract double getArea(); //声明抽象方法
abstract double getLength(); //声明抽象方法
}
class Circle implements IShape{ //用IShape接口来声明circle类
double radius;
public Circle(double r) {
radius =r;
}
public double getArea() { //实现接口中的方法
return PIradiusradius;
}
public double getLength() { //实现接口中的方法
return 2 * PI radius;
}
}
class Rectangle implements IShape{ //用IShape接口来声明Rectangle类
private double width;
private double height;
public Rectangle(double width,double height) {
this.width =width;
this.height = height;
}
public double getArea() { //实现接口的方法
return width
height;
}
public double getLength() { //实现接口的方法
return 2*(width+height);
}
}

public class a {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	IShape circle = new Circle(5.0);
	System.out.print("圆柱形="+circle.getArea());
	System.out.println(";周长="+circle.getLength());
	Rectangle rect = new Rectangle(6.5,10.8);
	System.out.println("矩形面积="+rect.getArea());
	System.out.println(";周长"+rect.getLength());
}

}
2.接口的继承
接口的继承
package practice;
interface Face1{ // 定义接口
static final double PI=3.14;
abstract double area() ;
}
interface Face2{ //定义接口

	abstract void setColor(String c);
}
interface Face3 extends Face1,Face2{   //多重继承
	abstract void volume();
}

public class aa implements Face3{ // 定义aa类实现face3接口
private double radius;
private int height;
protected String color;
public aa (double r,int h) {
radius = r;
height = h;
}
public double area() { // 实现接口
return PI*radius * radius;
}
public void setColor(String c) { //实现接口
color = c;
System.out.println(“颜色:”+color);
}
public void volume() { //实现方法
System.out.println(“圆柱体的体积=”+area()*height);
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	aa volu = new aa(3.0,2);
	volu.setColor("红色");
	volu.volume();
}

}
3.利用接口实现类的多重继承
在接口Face中定义默认方法、静态方法和抽象方法,在接口实现类中进行相应的方法调用
package practice;
interface Facel{ //定义接口
static final double PI = 3.14;
abstract double area();
interface Face2{ //定义接口
abstract void volume();
}
public class aaa implements Facel,Face2{ //多重继承
private double radius;
private int height;
public aaa(double r,int h) {
radius = r;
height = h;
}
public double area() {
return PIradiusradius;
}
public void volume() {
System.out.println(“圆柱体体积=”+area()*height);
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	aaa volu = new aaa(5.0,2);
	volu.volume();
}

}
4.接口中静态方法和默认方法
在接口Face中定义默认方法、静态方法和抽象方法,在接口的实现类中进行相应的方法调用。

package practice;
interface Face{ //定义接口
final static double PI = 3.14; //定义常量
public default double area(int r) { //定义默认方法
return rrPI;
}
abstract double volume(int r,double h); //声明抽象方法
public static String show() { //定义静态变量
return"我是Face中的静态方法";
}
}
public class aaaa implements Face { //定义一个 aaaa 实现Face接口
public double volume(int r,double h) { //实现接口中的方法
return area®*h; //调用接口中的默认方法area()
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.out.println(Face.show());               //直接使用接口名段用接口的静态方法
	aaaa ap= new aaaa();
	System.out.println("圆柱体的体积为:"+ap.volume(1,2.0));
}

}
5.解决接口多重继承中名字冲突问题
在两个接口Face1 和Face2 中定义了同名的默认方法area(),在实现类中委托其中一个父接口中的默认方法
package practice;
interface Face5{ //定义了一个接口
final static double PI = 3.14; //定义变量
public default double area(int r) { //定义与Face2中同名的默认方法
return rrPI;
}
abstract double volume(int r,double h); //声明抽象方法
}
interface Face6{ //定义接口
public default double area(int r) { // 定义与Face5中同名的默认方法
return r*r;
}
}

public class aaaaa implements Face5,Face6 { //定义主类并定义接口
public double area(int r) { //实现两个接口中的同名默认方法
return Face6.super.area®; //委托父接口Face6的area()方法
}
public double volume(int r,double h) { //实现接口中的方法
return area®*h; //调用的是接口Face6中的area()方法
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	aaaaa ap = new aaaaa();
	System.out.println("圆柱体体积为:"+ap.volume(1, 2.0));
}

}

  • 1
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

一只不起眼的猪

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值