栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

10.18 java课堂笔记-类的扩展

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

10.18 java课堂笔记-类的扩展

6.4 类型兼容与转换 兼容性

宽化:把子类型对象当作超类型的实例对待

窄化:把超类型引用转换为子类型引用

转换

        隐式转换

                byte,short,char-int-long-float-double

        强制转换

                窄化不安全,宽化安全

                确定一个对象是否具有某种给定类型,用instanceof

if(a instanceof b)
6.5 protected的真正含义

可通过对象引用.域、方法 形式访问任一一个protected成员,但该对象应该同级别或往下

protected静态域和静态方法可被任何扩展类访问

6.6final
final说明
改域为常量
方法扩展类不能改写该方法
该类不能被扩展,所有方法也隐含的成为final
6.7abstract

仅定义了部分实现类,而留待子类提供这些方法的部分或全部的进一步实现

抽象方法必须被每一个非抽象的子类所实现

不能创建一个抽象类的对象,由于被调用的一些方法可能没有实现

作业:

定义一个父类:形状类Shapes,里面有两个方法,分别是求面积和周长。

定义一个子类:矩形Rectangle

定义一个子类:三角形 Triagle

定义一个子类:圆 Circle

定义一个测试类:传入圆的半径1 输出周长和面积

                传入矩形的长和宽3,2 输出周长和面积

                传入三角形三边:3,4,5 输出周长和面积

import java.util.Scanner;
abstract class Shapes{
    abstract double Area();
    abstract double Perimeter();
}
class Rectangle extends Shapes{
    double length;
    double width;

    public Rectangle(double length,double width){
        this.length=length;
        this.width=width;
    }

    double Area(){
        return length*width;
    }
    double Perimeter(){
        return (length+width)*2;
    }
}

class Triagle extends Shapes{
    double len_a;
    double len_b;
    double len_c;
    
    public Triagle(double len_a,double len_b,double len_c){
        this.len_a=len_a;
        this.len_b=len_b;
        this.len_c=len_c;
    }


    double Area(){
        double c=(len_a+len_b+len_c)/2;
        double area=Math.sqrt(c*(c-len_a)*(c-len_b)*(c-len_c));
        return area;
    }
    double Perimeter(){
        return len_a+len_b+len_c;
    }
}

class Circle extends Shapes{
    double r;

    public Circle(double r){
        this.r=r;
    }


    
    double Area(){
        return Math.PI*r*r;
    }
    double Perimeter(){
        return 2*Math.PI*r;
    }
}

public class prog{
    public static void main(String[] args) {
        Circle a=new Circle(1);

        System.out.println("Circle's area is "+a.Area());
        System.out.println("circle's perimeter is "+a.Perimeter());

        Rectangle b=new Rectangle(3,2);

        System.out.println("rectangle's area is "+b.Area());
        System.out.println("rectangle's perimeter is"+b.Perimeter());

        Triagle c=new Triagle(3,4,5);

        System.out.println("triagle's area is "+c.Area());
        System.out.println("triagle's perimeter is "+c.Perimeter());



        
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号