精华内容
下载资源
问答
  • java-抽象类和继承抽象类

    万次阅读 2018-02-09 16:17:15
    抽象类和继承抽象类 抽象类不能直接实例化,需要创建一个指向自己的对象引用(其子类)来实例化 代码: public class Main { public static void main(String[] args) { /* People people = new People(); *...

    抽象类和继承抽象类

    抽象类不能直接实例化,需要创建一个指向自己的对象引用(其子类)来实例化
    代码:

    public class Main
    {
        public static void main(String[] args)
        {
            /* People people = new People(); */ //错误
            People p = new Man();
            p.eat();
            p.drink();
            /* p.palyGames() */ //此方法错误
            Man man = new Man();
            man.eat();
            man.playGames();
            Women women = new Women();
            women.eat();
            women.dressing();
        }
        abstract static class People{
            String name;
            int age;
            float height;
            float weight;
            public void eat(){
                System.out.println("人都会吃饭");
            }
            public abstract void drink();
        }
        static class Man extends People{
            float short_hair;
            public void playGames(){
                System.out.println("男的独有的打游戏技能");
            }
            @Override
            public void drink(){
                System.out.println("man drink 酒");
            }
        }
        static class Women extends People{
            float long_hair;
            public void dressing(){
                System.out.println("女的独有的化妆技能");
            }
            @Override
            public void drink(){
                System.out.println("women drink 饮料");
            }
        }
    }
    
    

    这里People不能直接实例化,如果是People p = new Man();这里p只能调用People类n抽象方法和成果调用了其抽象方法,则访问的是其引用类(子类)继承的抽象类;如果是Man man= new Man();这里man是可以调用类Man和其继承的抽象类People的方法和属性
    这里写图片描述

    展开全文
  • 如果抽象类没有实现接口中的所有有方法(不用写方法体),那么A类继承抽象类后就必须重写抽象类没有实现的方法。所以为了方便的去使用个别方法,可以让抽象类去实现接口的所用方法(不用写方法体),这样A类就可以...
    当A类想要实现一个接口中个别方法是(不是所有方法),可以创建一个抽象类去实现该接口,然后在有A类去继承这个抽象类。
    
    注意:这个抽象类必须重写这个接口的所有方法,A类才可以实现其中的个别方法;如果抽象类没有实现接口中的所有有方法(不用写方法体),那么A类继承抽象类后就必须重写抽象类没有实现的方法。所以为了方便的去使用个别方法,可以让抽象类去实现接口的所用方法(不用写方法体),这样A类就可以随便(想写几 个就写几个)重写抽象类的方法了。
    展开全文
  • 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。 直接上代码了 package ThirdDay; abstract class...

    设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。

    直接上代码了

    package ThirdDay;
    
     abstract class Shape {
        //计算面积
        public abstract Double calculateS();
    
        //计算周长
        public  abstract Double calculateC();
    }
    
    //长方形类
      class Rectangle extends  Shape{
         private double l;
         private double s;
    
        public Rectangle(double l, double s) {
            this.l = l;
            this.s = s;
        }
    
        public double getL() {
            return l;
        }
    
        public void setL(double l) {
            this.l = l;
        }
    
        public double getS() {
            return s;
        }
    
        public void setS(double s) {
            this.s = s;
        }
    
        @Override
        public Double calculateS() {
            return s*l;
        }
    
        @Override
        public Double calculateC() {
            return 2*(s+l);
        }
    
    }
    
      class Square extends Shape{
    
         private double sideLength;
    
          public Square(double sideLength) {
              this.sideLength = sideLength;
          }
    
          public double getSideLength() {
              return sideLength;
          }
    
          public void setSideLength(double sideLength) {
              this.sideLength = sideLength;
          }
    
          @Override
          public Double calculateS() {
              return Math.pow(sideLength,2);
          }
    
          @Override
          public Double calculateC() {
              return 4*sideLength;
          }
      }
    
      class Triangle extends Shape{
    
         private double a;
         private double b;
         private double c;
    
          public Triangle(double a, double b, double c) {
              this.a = a;
              this.b = b;
              this.c = 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;
          }
    
          @Override
          public Double calculateS() {
              double s = (a + b + c) / 2;
              double area = Math.pow(s*((s - a)*(s - b)*(s - c)), 0.5);
              return area;
          }
    
          @Override
          public Double calculateC() {
              return a+b+c;
          }
      }
    
    
    class Circle extends Shape{
    
        private double r;
    
          public Circle(double r) {
              this.r = r;
          }
    
          public double getR() {
              return r;
          }
    
          public void setR(double r) {
              this.r = r;
          }
    
          @Override
          public Double calculateS() {
              return Math.PI*r*r;
          }
    
          @Override
          public Double calculateC() {
              return 2*Math.PI*r;
          }
      }
    
    
      class Graphice {
          public static void main(String[] args) {
              Circle circle=new Circle(2.5);
              System.out.println("半径为:"+circle.getR()+"的圆面积为:"+circle.calculateC());
              System.out.println("半径为:"+circle.getR()+"的圆周长为:"+circle.calculateS());
              Triangle triangle=new Triangle(3,4,5);
              if (triangle.getA() > 0 && triangle.getB()> 0 && triangle.getC() > 0 &&
                      (triangle.getA()+ triangle.getB()) > triangle.getC() && (triangle.getA() + triangle.getC()) > triangle.getB() && (triangle.getB() + triangle.getC()) > triangle.getA()) {
                  System.out.println("三角形的a,b,c三边长为:"+triangle.getA()+","+triangle.getB()+","+triangle.getC());
                  System.out.println("三角形的周长为 = " + triangle.calculateC());
                  System.out.println("三角形的面积 = " + triangle.calculateS());
              }else {
                  System.out.println("\n三角形三边不合法! 三角形创建失败! "
                          + "\n请重新输入三边\n");
              }
              Rectangle rectangle=new Rectangle(5,2);
              System.out.println("长为:"+rectangle.getL()+"宽为:"+rectangle.getS()+"的长方形面积为:"+rectangle.calculateS());
              System.out.println("长为:"+rectangle.getL()+"宽为:"+rectangle.getS()+"的长方形周长为:"+rectangle.calculateC());
              Square square=new Square(2);
              System.out.println("边长为:"+square.getSideLength()+"的正方形面积为:"+square.calculateS());
              System.out.println("边长为:"+square.getSideLength()+"的正方形周长为:"+square.calculateC());
          }
      }
    

    运行结果如下

    半径为:2.5的圆面积为:15.707963267948966
    半径为:2.5的圆周长为:19.634954084936208
    三角形的a,b,c三边长为:3.0,4.0,5.0
    三角形的周长为 = 12.0
    三角形的面积 = 6.0
    长为:5.0宽为:2.0的长方形面积为:10.0
    长为:5.0宽为:2.0的长方形周长为:14.0
    边长为:2.0的正方形面积为:4.0
    边长为:2.0的正方形周长为:8.0
    
    
    展开全文
  • 继承抽象类的子类必须重写抽象类的方法 转载于:https://www.cnblogs.com/classmethond/p/9926283.html

    继承抽象类的子类必须重写抽象类的方法

    转载于:https://www.cnblogs.com/classmethond/p/9926283.html

    展开全文
  • 创建抽象类Person,具有name属性,包含一个参数——姓名的构造方法,具备显示类信息的抽象方法display()。 创建Person的子类Student,属性包括姓名、年级、专业。重写父类的抽象方法。注意在类的继承中不能继承父类...
  • Java回顾:用一个Demo来说明继承抽象类和实现接口的简单框架模型
  • Java 抽象类 接口 继承 实现

    千次阅读 2016-07-23 17:21:14
    接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。...所以,在高级语言上,一个类只能继承一个类抽象类,jav
  • C++嵌套抽象类继承方式

    千次阅读 2015-01-05 20:21:08
    今天在工作中遇到了一个问题,需要继承一个嵌套的抽象类,废了很大的功夫才成功创建了对象 抽象嵌套类如下: class A { class B { public: B* GetInstance() = 0; } }; 继承类如下: class C : public...
  • [Java] 继承抽象类相关题目

    千次阅读 2020-04-06 05:13:44
    本文介绍了 Java 中继承抽象类的相关题目。。。
  • 创建抽象类

    千次阅读 2017-11-08 21:37:00
    创建抽象类package omd;public abstract class cc {//创建抽象类cc abstract void distance();//创建抽象类方法 public static void main(String[] args) { // TODO 自动生成的方法存根 Car QQ=new Car();//定义...
  • 继承extends与 抽象类 abstract

    千次阅读 2018-05-01 11:51:29
    继承的父子成员特点子类继承父类: 1:子类可以访问父类...a:一个子类只能有一个父类(一个儿子只能有一个爹) b:一个父类可以有多个子类(一个爹可以有多个儿子) c:任何一个类如果没有指定父类,则他的父类默认就是Obj...
  • 在编程练习中使用一个抽象类,然后通过一个类说明来继承抽象类并实现抽象类的所有成员函数。根据编程习惯,我们会在.h文件中给出函数声明,在.cpp中给出各成员函数的具体实现,在编译时出现:error LINK 2001的解决...
  • 在java中,当创建一个子类...提个问题:如果当创建一个子类对象会先创建父类对象的话,那么如果父类是抽象类的话,那该抽象父类也会被实例化喽,这与抽象类不能实例化相互矛盾啊! package javase5; pub...
  • 已知一个抽象类Shapge,该类中有一个方法GetArea。 要求定义一个Rectangle类,继承Shape类,实现GetArea方法计算矩形面积。 输入输出说明: 输入: 5 4 输出: 20.0 import java.util.Scanner; ...
  • 定义一个抽象的"Role",有姓名,年龄,性别等成员变量 1)要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有), 再通过Getter()和Setter()方法对各变量进行读写。具有一个抽象的play()方法, ...
  • JAVA创建抽象类

    千次阅读 2017-11-11 12:58:44
    、什么是抽象类抽象类是指在普通类的结构里面增加抽象方法的组成部分。 抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰。 二、抽象类的使用原则 (1)抽象方法必须为...
  • 1、继承抽象类,必须重写抽象类中所有抽象方法。 2、继承普通类,可以重写也可以不重写父类的方法。 3、实现接口则必须实现接口中的所有方法。(接口中的方法均为抽象方法)。 二、抽象类、接口的区别 1、类要被子类...
  • Java抽象类不能创建对象

    万次阅读 2017-03-06 14:35:21
    人们使用抽象类和接口只是为了说明要干什么事,而让他们的实现类去根据自己的需要去实现这些方法,比如说抽象类定义一个eat()方法, 它并没有说这个方法具体怎么做,羊就可以吃草,虎就可以吃肉,羊和虎都实现了这...
  • 分类的原则是一个类派生出来的子类具有这个类的所有非私有的属性。 1、继承C#中的类:C#不支持多重继承,C#类始终继承自一个基类(如果未在声明中指定一个基类,则继承自System.Object)。 派生类继承基类的语法如下...
  • 定义一个抽象类shape,它包含一个抽象方法getArea() 定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象面积,编写应用程序使用Rectangle...
  • 抽象类

    千次阅读 2019-01-29 16:30:36
    这种只有声明而没有方法体的方法成为抽象方法,而包含一个或者多个抽象方法的类称为抽象类。 抽象方法是通过指定abstract关键字来创建。抽象方法没有内容,因此不需要被父类执行,所以子类必须重写抽象方法。 抽象...
  • 面向对象编程之继承、多态、封装、抽象类、接口、包继承类的继承格式为什么要继承继承的特点继承的种类及关键字访问权限多态向上转型动态绑定方法重写重写和重载的区别比较多态的优点封装实现Java的封装封装的优点...
  • 抽象类继承总结

    千次阅读 2018-08-04 14:31:37
    继承:是指在一个现有的基础上去构建一个新的,构建出来的新被称作子类,现有被称作父类,子类会自动拥有父类所有 继承的好处:可继承的属性和方法。    提高了代表的可维护性  提高了代码的...
  • 4.1 抽象类 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的。 同时,抽象类体现了数据抽象的...所以说定义的抽象类一定是用来继承的,同时在一个以抽象...
  • 抽象类为什么不能创建对象?

    千次阅读 2020-07-18 21:37:02
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类往往用来表征对问题领域...
  • 纯虚函数 、抽象类 、多重继承 、二义性问题 、菱形继承 、虚基类 、从内存布局看虚继承的底层实现原理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 399,529
精华内容 159,811
关键字:

创建一个类继承抽象类