• 继承、多态(9.22)——————————课后练习


    package 课后练习;
    
    /*
     编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数
    wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数
    loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个
    类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功
    能。
     */
    
    //父类
    class Vehicle
    {
        //成员属性
        private int wheels ;
        private double weight ;
        
        public int getWheels() {
            return wheels;
        }
    
        public void setWheels(int wheels) {
            this.wheels = wheels;
        }
    
        public double getWeight() {
            return weight;
        }
    
        public void setWeight(double weight) {
            this.weight = weight;
        }
    
        //构造方法
        public Vehicle( )
        {
            
        }
        
        //成员方法
        public void speak( )
        {
            System.out.println("车轮数量"+wheels+"车重"+weight);
        }
        
    }
    
    //子类
    class Car extends Vehicle
    {
        //成员属性
        private int loader ;
        
        public int getLoader() {
            return loader;
        }
    
        public void setLoader(int loader) {
            this.loader = loader;
        }
    
        //构造方法
        public Car( )
        {
            
        }
        
        //成员方法
        public void speak1( )
        {
            System.out.println("载人数"+loader);
        }
    }
    
    //子类
    class Truck extends Car
    {
        //成员属性
        private int payload ;
        
        public int getPayload() {
            return payload;
        }
    
        public void setPayload(int payload) {
            this.payload = payload;
        }
    
            //构造方法
            public Truck( )
            {
                
            }
            
            //成员方法
            public void speak2( )
            {
                System.out.println("载重量"+payload);
            }
    }
    
    //测试类
    public class CeshiCar
    {
    
        public static void main(String[] args) 
        {
            Truck a = new Truck( ) ;
            a.setLoader(30);
            a.setPayload(50);
            a.setWeight(10);
            a.setWheels(4);
            a.speak();
            
            a.speak1();
            
            a.speak2();
        }
    
    }

    package 课后练习;
    /*
    编写一个Shape类,具有属性:周长和面积;
    定义其子类三角形和矩形,分别具有求周长的方法。
    定义主类,在其main方法中创建三角形和矩形类的对象,
    并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
    */
    
    //父类(抽象类)
    abstract class Shape
    {
        //成员属性
        private double zhouchang ;
        private double mianji ;
        
        public double getZhouchang() {
            return zhouchang;
        }
    
        public void setZhouchang(double zhouchang) {
            this.zhouchang = zhouchang;
        }
    
        //构造方法
        public Shape( )
        {
            
        }
        
        //计算周长方法
        public  abstract double zc ( ) ;
        
    }
    
    //子类
    class Sanjiaoxing extends Shape
    {
        private double a ;
        private double  b ;
        private double  c ;
        
        public double getA() {
            return a;
        }
    
        public void setA(double a) {
            this.a = a;
        }
    
        public double getB() {
            return b;
        }
    
        public void setB(double b) {
            this.b = b;
        }
    
        public double getC() {
            return c;
        }
    
        public void setC(double c) {
            this.c = c;
        }
    
        public   double zc ( )
        {
            if ( a+b>c && Math.abs(a-b)<c)
            {
                return a+b+c ;
            }
            else
            {
                return -1 ;
            }
        }
        
        
    }
    
    //子类
    class Juxing extends Shape
    {
        private double chang ;
        private double kuan ;
        
        public double getChang() {
            return chang;
        }
    
        public void setChang(double chang) {
            this.chang = chang;
        }
    
        public double getKuan() {
            return kuan;
        }
    
        public void setKuan(double kuan) {
            this.kuan = kuan;
        }
    
        public Juxing( )
        {
            
        }
        
        public Juxing( double chang,double kuan  )
        {
            this.chang = chang;
            this.kuan = kuan;
        }
        
        public double zc( )
        {
            return (chang+kuan)*2 ;
        }
        
    }
    
    //主类
    public class CeshiShape {
    
        public static void main(String[] args) {
    
            Juxing s = new Juxing( ) ;
             
            s.setChang(2);
            s.setKuan(2);
            System.out.println(s.zc());
        
            Sanjiaoxing x = new Sanjiaoxing( ) ;
             
            x.setA(3);
            x.setB(4);
            x.setC(5);
            
            if(x.zc()==-1)
            {
                System.out.println("不是三角形");
            }
            
            else
            {
            System.out.println(x.zc());
            }
            
            Sanjiaoxing y = new Sanjiaoxing( ) ;
             
            y.setA(1);
            y.setB(1);
            y.setC(2);
            
            if(y.zc()==-1)
            {
                System.out.println("不是三角形");
            }
            
            else
            {
            System.out.println(x.zc());
            }
        }
    
    }

    package 课后练习;
    /*
    定义类Human,具有若干属性和功能;定义其子类Man、Woman;
    在主类Test中分别创建子类、父类和上转型对象,并测试其特性。
    */
    
    //父类
    class Human
    {
        //成员属性
        private String name  ;
        private int age ;
        
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void hello( )
        {
            System.out.println(name+"-"+age);
        }
    }
    
    //子类
    class Man extends Human
    {
        //成员属性
        private String sex  ;
        
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public void hello1( )
        {
            System.out.println(sex);
        }
    }
    
    //子类
    class Woman extends Human
    {
        //成员属性
        private String sexx  ;
        
        public String getSexx() {
            return sexx;
        }
    
        public void setSexx(String sexx) {
            this.sexx = sexx;
        }
    
        public void hello2( )
        {
            System.out.println(sexx);
        }
    }
    
    public class Test 
    {
        public static void main(String[] args)
        {
            Human a = new Human( ) ;
            a.setName("张三");
            a.setAge(19);
            a.hello();
            
            Man b = new Man( ) ;
            b.setName("李四");
            b.setAge(34);
            b.setSex("我爱跑步");
            b.hello();
            b.hello1();
            
            Woman c = new Woman( ) ;
            c.setAge(22);
            c.setName("王美丽");
            c.setSexx("我爱听音乐");
            c.hello();
            c.hello2();
            
            Human d =new Man() ;
            d.setAge(8);
            d.setName("小明" ) ;
            d.hello( );
            
        }
    
    }

    package 课后练习;
    
    //接口
    public interface ShapePara 
    {
        public static final double  PI = 3.14 ;
        public double  getArea( ) ;
        public double getCircumference( ) ;
    }
    
    //创建类
     class Circle implements ShapePara
    {
        //成员属性
        public double radius ;  //圆的半径
        private double x ;//圆心横坐标
        protected double y ;//圆心纵坐标
        
        //有参构造方法
        Circle(double radius)
        {
            this.radius = radius ;
            x = 0 ;
            y = 0 ;
        }
        
        public double getRadius() {
            return radius;
        }
    
        public void setRadius(double radius) {
            this.radius = radius;
        }
        
        //成员方法
        public void setCenter(double x, double y)
        {
            this.x = x ;
            this.y = y ;
        }
        
        
        @Override
        public double getCircumference() 
        {
            return 2*PI *radius;
        }
    
        @Override
        public double getArea()
        {
            return radius*radius*PI;
        }
        
    }    
    
    //创建类
    abstract class Shape2
    {
        public abstract double getArea( ) ;
    }
    
     //子类
    class Rect extends Shape2 implements ShapePara
    {
        //成员属性
        private double a ;
        private double b ;
    
        public double getWeight() {
            return a;
        }
    
        public void setWeight(double weight) {
            this.a = weight;
        }
    
        public double getHeight() {
            return b;
        }
    
        public void setHeight(double height) {
            this.b = height;
        }
    
        @Override
        public double getArea() {
            return a*b ;
        }
    
        @Override
        public double getCircumference() 
        {
            return (a+b)*2;
        }
        
    
    }
    package 课后练习;
    
    public class Ceshitest {
    
        public static void main(String[] args)
        {
            Circle a = new Circle( 3 ) ;
            ShapePara s = a ;
            System.out.println("圆的周长"+s.getCircumference());
            System.out.println("圆的面积"+s.getArea());
            
            Rect b = new Rect( ) ;
            b.setHeight(2);
            b.setWeight(4);
            ShapePara c = b ;
            System.out.println("矩形面积"+c.getArea());
            System.out.println("矩形周长"+c.getCircumference());
        
        }
    
    }

  • 相关阅读:
    Python基础:文件的基本操作
    Python基础:函数的介绍及应用
    Python基础:列表,元组和字典的基本操作
    Python基础:字符串的常见操作
    Python基础:Python数据类型及逻辑判断语句
    Apache Hive (七)Hive的DDL操作
    Apache Hive (六)Hive SQL之数据类型和存储格式
    Apache Hive (五)DbVisualizer配置连接hive
    网络通信
    HashMap与Hashtable的区别
  • 原文地址:https://www.cnblogs.com/20gg-com/p/5896321.html
Copyright © 2020-2023  润新知