子类会继承父类对于接口的实现

项目截图:

实现代码:

 1 package exercise2;
 2
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6
 7 interface CircleShape {
 8     double PI = 3.14159;
 9
10     double area(double radius);
11 }
12
13 class Circle implements CircleShape {
14     int radius;
15
16     public Circle(int r) {
17         radius = r;
18     }
19
20     public double perimeter() {
21         return (2 * PI * radius);
22     }
23
24     @Override
25     public double area(double radius) {
26         return (PI * radius * radius);
27     }
28 }
29
30 class Cylinder extends Circle implements CircleShape {// 子类会继承父类对于接口的实现
31     int heigh;
32     int radius;
33
34     public Cylinder(int r, int h) {
35         super(r);
36         heigh = h;
37     }
38
39     public double baseAera(double radius) {
40         return area(radius);
41     }
42
43     public double area1(double radius) {
44         return (heigh * super.perimeter() + 2 * area(radius));
45     }
46
47     public double volume(double radius) {
48         return (heigh * area(radius));
49     }
50 }
51
52 public class Ex13_2 {
53     public static void main(String[] args) throws IOException {
54         int r1, r2;
55         String t;
56         System.out.println("请输入圆cir1和cir2的半径r1,r2");
57         BufferedReader scan = new BufferedReader(new InputStreamReader(
58                 System.in));
59         t = scan.readLine();
60         r1 = Integer.parseInt(t);
61         t = scan.readLine();
62         r2 = Integer.parseInt(t);
63         Circle cir1 = new Circle(r1);
64         Circle cir2 = new Circle(r2);
65         System.out.println("圆cir1的面积是" + cir1.area(r1) + "\t周长是:"
66                 + cir1.perimeter());
67         System.out.println("圆cir2的面积是" + cir1.area(r2) + "\t周长是:"
68                 + cir2.perimeter());
69         int h1, h2;
70         System.out.println("请输入圆柱cy1的半径和高:");
71         t = scan.readLine();
72         r1 = Integer.parseInt(t);
73         t = scan.readLine();
74         h1 = Integer.parseInt(t);
75         Cylinder cy1 = new Cylinder(r1, h1);
76         System.out.println("cy1的底圆面积是:" + cy1.baseAera(r1));
77         System.out.println("cy1的体积是:" + cy1.volume(r1) + "\t表面积是:"
78                 + cy1.area1(r1));
79
80         System.out.println("请输入圆柱cy2的半径和高:");
81         t = scan.readLine();
82         r2 = Integer.parseInt(t);
83         t = scan.readLine();
84         h2 = Integer.parseInt(t);
85         Cylinder cy2 = new Cylinder(r2, h2);
86         System.out.println("cy2的底圆面积是:" + cy2.baseAera(r1));
87         System.out.println("cy2的体积是:" + cy2.volume(r1) + "\t表面积是:"
88                 + cy2.area1(r2));
89     }
90
91 }
时间: 2024-08-25 12:42:36

子类会继承父类对于接口的实现的相关文章

java中字段继承问题--子类不能继承父类的私有成员

public class Test1 { private int t1 = 1; public int getT1() { return t1; } public void setT1(int t1) { this.t1 = t1; } } 以上是Test1类,有个private的t1,值为1,给了get/set方法. public class Test2 extends Test1 { private int t1 = 2; public static void main(String[] a

Java中子类能继承父类的私有属性吗?

前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先看下面一段代码 /** * 定义父类 * @author CBS */ public class Father { private String name;//私有属性 private char sex; public void tell(){ System.out.println(name+sex

构造函数的继承--子类不继承父类的构造函数,只能调用

关于子类对父类构造函数的继承: 子类必须调用父类的构造函数.默认情况下会自动调用父类的无参构造函数.如果父类没有无参构造函数,则必须显式的用super()调用一个构造函数. 创建对象时,先调用父类的构造函数对对象进行初始化, 然后再调用子类自己的构造函数 子类只继承(其实是默认调用)父类的默认(无参)构造函数,如果父类重写了自己的构造函数,就会导致父类没有无参构造函数,这样子类就不能从父类继承构造函数.

javascript中子类如何继承父类

参考阮一峰的文章:http://javascript.ruanyifeng.com/oop/inheritance.html#toc4 function Shape() { this.x = 0; this.y = 0; } Shape.prototype.move = function (x, y) { this.x += x; this.y += y; console.info('Shape moved.'); }; function Rectangle() { Shape.call(thi

子类可以继承父类的一切方法,成员变量,甚至是私有的,但是却不能够访问这些私有的成员变量和方法

1.关于私有成员变量 无论父类中的成员变量是私有的.共有的.还是其它类型的,子类都会拥有父类中的这些成员变量.但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected.public方法(如getter.setter方法)来访问. 2.关于静态成员变量 无论父类中的成员变量是静态的.还是非静态的,子类都会拥有父类中的这些成员变量. 3.关于被子类覆盖的成员变量 无论父类中的成员变量是否被子类覆盖,子类都会拥有父类中的这些成员变量. 原文地址:https://ww

继承的顺序,子类覆盖继承父类的方法

当构造一个对象的时候,系统先构造父类对象,再构造子类对象. 构造一个对象的顺序:(注意:构造父类对象的时候也是这几步) ① 递归地构造父类对象: ② 顺序地调用本类成员属性赋初值语句: ③ 本类的构造方法. Super()表示调用父类的构造方法. Super()也和this一样必须放在第一行. This()用于调用本类的构造方法. 如果没有定义构造方法,那么就会调用父类的无参构造方法,即super().

子类继承父类,那么各代码块的执行顺序为:

子类A继承父类B, A a = new A(); 则父类B构造函数.父类B静态代码块.父类B非静态代码块.子类A构造函数.子类A静态代码块.子类A非静态代码块 执行的先后顺序是: 父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数 解析: 按照先后顺序: 1,静态先于非静态代码库执行(静态代码块随着类的加载而加载,初始化只执行一次) 2,父类先于子类 3,非静态代码块优于构造函数执行 -------------

Python 子类继承父类

写过程序的都知道类,就是面向对象的意思,编程的水平大致分为几个层次,基本语法,函数,面向对象,数据结构,架构,越往上水平越高. 在创建类的时候,我们通常把具有相关性的函数包装为一个类,类也可以嵌套,叫父类和子类,尤其在python中,所有的对象都可以当成一个variable,下面给出一个类嵌套的例子. class Metric(object): def __init__(self): self.var = "Hadoop" def print_metric(self): print &

子类继承父类 ( 代码复用 )

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script> //继承 : 子类不影响父类,子类可以继承父类的一些功能 ( 代码复用 ) //属性的继承 : 调用父类的构造函数 call //