Java抽象类以及接口练习
1.设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、等边三角形类来继承图形类,并实现上述两个方法。并创建实例验证。
首先定义一个抽象图形类,类中两个抽象方法,注意此处返回值选用double型,因为在之后得图形面积计算中会用到π这一double型的数字
public abstract class Graphical {public abstract double area();public abstract double grith();}
圆形类继承图形类
先定义半径这一属性,之后定义构造方法
最后实现父类的方法
public class Circular extends Graphical {private double r;public Circular(double r){setR(r);}public double area() {return Math.PI*r*r;}public double grith() {return Math.PI*2*r ;}public void setR(double r) {this.r = r;}public double getR() {return r;}
}
矩形类
public class Rectangle extends Graphical{private double a;private double b;public Rectangle(double a,double b){setA(a);setB(b);}public double area() {return a*b;}public double grith() {return 2*(a+b);}public void setA(double a) {this.a = a;}public double getA() {return a;}public void setB(double b) {this.b = b;}public double getB() {return b;}}
等边三角型类
public class Triangle extends Graphical{private double a;private double b;private double c;public Triangle(double a,double b,double c){setA(a);setB(b);setC(c);}public double area() {return Math.sin(Math.PI/3)*a*a/2;}public double grith() {return 3*a;}public void setA(double a) {this.a = a;}public double getA() {return a;}public void setB(double b) {this.b = b;}public double getB() {return b;}public void setC(double c) {this.c = c;}public double getC() {return c;}}
测试类
public class Test {public static void main(String[] arg){Circular cir=new Circular(2.5);System.out.println("半径为:"+cir.getR()+"的圆面积为:"+cir.area());System.out.println("半径为:"+cir.getR()+"的圆周长为:"+cir.grith());Rectangle re= new Rectangle(1,2);System.out.println("矩形面积为:"+re.area());System.out.println("矩形周长为:"+re.grith());Triangle tr = new Triangle(2,2,2);System.out.println("等边三角形面积为:"+tr.area());System.out.println("等边三角形周长为:"+tr.grith());}
}
2.创建一个抽象类动物类以及以下几个接口:进食的接口、睡觉的接口、思考的接口、说话的接口、飞翔的接口。分别定义猫类、人类、鸟类继承动物类并选择实现上述的接口,并创建实例验证。
先定义这五个接口
接口中默认为抽象类
进食的接口
public interface Eat {public void eat(String type);
}
飞翔的接口
public interface Fly {public void fly();
}
睡觉的接口
public interface Sleep {public void sleep();
}
说话的接口
public interface Speak {public void speak();
}
思考的接口
public interface Think {public void think();
}
定义抽抽象动物类作为父类
定义两个属性一个种类一个年龄
public abstract class Animals {private String type;private int age;public Animals(String type,int age){setType(type);setAge(age);}public void setType(String type) {this.type = type;}public String getType() {return type;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}}
需要根据类型来选择接口
猫类继承与动物类
public class Cat extends Animals implements Eat, Sleep, Speak {public Cat(String type,int age){super(type,age);}@Overridepublic void eat(String type) {System.out.println(type+"吃鱼");}@Overridepublic void sleep() {System.out.println("猫趴着睡觉");}@Overridepublic void speak() {System.out.println("猫喵喵叫");}}
鸟类
public class Bird extends Animals implements TestIF {public Bird(String type,int age){super(type,age);}@Overridepublic void eat(String type) {System.out.println("鸟吃虫");}@Overridepublic void sleep() {System.out.println("鸟站着睡觉");}@Overridepublic void speak() {System.out.println("鸟叽叽喳喳叫");}@Overridepublic void think() {System.out.println("鸟站着思考");}@Overridepublic void fly() {System.out.println("鸟用翅膀飞");}}
人类
public class Human extends Animals implements Eat, Sleep, Speak, Think {public Human(String type,int age){super(type,age);}@Overridepublic void eat(String type) {System.out.println("人吃饭");}@Overridepublic void sleep() {System.out.println("人躺着睡觉");}@Overridepublic void speak() {System.out.println("人说不同语言");}@Overridepublic void think() {System.out.println("人在思考");}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
