精华内容
下载资源
问答
  • Java 抽象类经典例子2

    千次阅读 2016-10-18 10:24:47
    Java 抽象类经典例子2目录Java 抽象类经典例子2目录 问题描述 代码块 答案问题描述抽象类的练习 学生案例: 具体类:一般学生 优秀学生 共性:姓名 年龄 年纪 吃饭 差异: 学习内容代码代码块语法遵循...

    Java 抽象类经典例子2

    目录

    问题描述

    抽象类的练习
    学生案例:
    具体类:一般学生 优秀学生
    共性:姓名 年龄 年纪
    吃饭
    差异: 学习内容

    代码块

    代码块语法遵循标准markdown代码,例如:

    abstract class student {
        //成员变量
        private String name;
        private int age;
        private int grand;
        //无参构造方法
        public student(){}
        //带参构造方法
        public student(String name,int age,int grand){
            this.name=name;
            this.age=age;
            this.grand=grand;
        }
    
        public void setname(String name){
            this.name=name;
        }
        public String getname(){
            return name;
        }
        public void setage(int age){
            this.age=age;
        }
        public int getage(){
            return age;
        }
        public void setgrand(int grand){
            this.grand=grand;
        }
        public int getgrand(){
            return grand;
        }   
        //抽象方法
        abstract public void study();
        //成员方法
        public void eat(){
            System.out.println("该吃饭了:");
        }
    }
    class Basicstudent extends student {
        //构造方法
        public Basicstudent(){}
        public Basicstudent(String name,int age,int grand){
            super(name,age,grand);
        }
        public void study(){
            System.out.println("Basicstudent:   study");
        }
    
    }
    class Goodstudent extends student{
    
        public Goodstudent(){}
        public Goodstudent(String name,int age,int grand){
            super(name,age,grand);
        }
    
        public void study(){
            System.out.println("Goodstudent:  study");
        }
    }
    public class AbstractTest3{
        public static void main(String[] args){
            student s =new Basicstudent();
            s.setname("Basicstudent1");
            s.setage(20);
            s.setgrand(1111);
            System.out.println(s.getname()+"----"+s.getage()+"----"+s.getgrand());
            s.eat();
            s.study();
    
            s =new Basicstudent("Basicstudent1",20,2222);
            System.out.println(s.getname()+"----"+s.getage()+"----"+s.getgrand());
            s.eat();
            s.study();
        }
    }

    答案

    Basicstudent1—-20—-1111
    该吃饭了:
    Basicstudent: study
    Basicstudent1—-20—-2222
    该吃饭了:
    Basicstudent: study

    展开全文
  • Java抽象类和抽象方法例子

    千次阅读 2017-09-17 23:56:59
    转自Java抽象类用法示例详解  Java抽象类的定:java抽象类体现数据抽象的思想,是实现程序多态性的一种手段。也提到抽象类与抽象方法的限制,下面我们会通过一下java抽象类小示例来给你介绍抽象类的用法。希望对你...

    http://www.cnblogs.com/guwei4037/p/6021053.html

    题目:定义Shape类表示一般二维图形。Shape具有抽象方法area和perimeter,分别计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形等),这些均为Shape类的子类并计算出这些形状的面积和周长,打印输出相关信息。

    代码:

    //形状类
    public
    abstract class Shape { public abstract double area(); public abstract double perimeter(); }
    复制代码
    //矩形类
    public
    class Rectangle extends Shape { private double length; private double width; public double getLength() { return length; } public void setLength(double length) { this.length = length; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } @Override public double area() { return getLength() * getWidth(); } @Override public double perimeter() { return 2 * (getWidth() + getWidth()); } }
    复制代码
    复制代码
     
    //三角形类
    public class Triangle extends Shape { private double a, b, 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 area() { double p = (getA() + getB() + getC()) / 2; return Math.sqrt(p * (p - getA()) * (p - getB()) * (p - getC())); } @Override public double perimeter() { return getA() + getB() + getC(); } }
    复制代码
    复制代码
    //圆形类
    public
    class Circle extends Shape { private double diameter; public double getDiameter() { return diameter; } public void setDiameter(double diameter) { this.diameter = diameter; } @Override public double area() { return Math.PI * Math.pow(getDiameter() / 2, 2); } @Override public double perimeter() { return Math.PI * getDiameter(); } }
    复制代码
    复制代码
    //测试代码
    public class 测试 { public static void main(String [] args){ Rectangle rec = new Rectangle(); rec.setLength(10); rec.setWidth(5); double rec_area = rec.area(); double rec_perimeter = rec.perimeter(); System.out.println("矩形的面积:"+rec_area+",周长"+rec_perimeter); Triangle tri = new Triangle(); tri.setA(3); tri.setB(4); tri.setC(5); double tri_area = tri.area(); double tri_perimeter = tri.perimeter(); System.out.println("三角形的面积:"+tri_area+",周长"+tri_perimeter); Circle cir = new Circle(); cir.setDiameter(10); double cir_area = cir.area(); double cir_perimeter = cir.perimeter(); System.out.println("圆形的面积:"+cir_area+",周长"+cir_perimeter); } }
    复制代码

     


    展开全文
  • java抽象类,方法例子

    千次阅读 2019-01-20 22:05:09
    //抽象类 public abstract class Animal { private String name; //抽象方法 public abstract void eat(); public String getName() { return name; } public void setName(String name) { thi...
     package demo4;
    //抽象类
    public abstract class Animal {
    	private String name;	
    	//抽象方法
    	public abstract void eat();
    		public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    public final class Cat extends Animal{
    	@Override
    	public void eat() {//子类中实现抽象方法
    		System.out.println("猫喜欢吃鱼");	
    	}	
    }
    

    在这里插入图片描述

    展开全文
  • Java 抽象类

    千次阅读 多人点赞 2019-01-28 09:16:52
    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类除了不能实例...

    Java 抽象类

    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
    抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
    由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
    父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
    在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
    抽象类
    在Java语言中使用abstract class来定义抽象类。如下实例:

    Employee.java 文件代码:
    /* 文件名 : Employee.java */

    public abstract class Employee
    {
       private String name;
       private String address;
       private int number;
       public Employee(String name, String address, int number)
       {
          System.out.println("Constructing an Employee");
          this.name = name;
          this.address = address;
          this.number = number;
       }
       public double computePay()
       {
         System.out.println("Inside Employee computePay");
         return 0.0;
       }
       public void mailCheck()
       {
          System.out.println("Mailing a check to " + this.name
           + " " + this.address);
       }
       public String toString()
       {
          return name + " " + address + " " + number;
       }
       public String getName()
       {
          return name;
       }
       public String getAddress()
       {
          return address;
       }
       public void setAddress(String newAddress)
       {
          address = newAddress;
       }
       public int getNumber()
       {
         return number;
       }
    }
    
    注意到该 Employee 类没有什么不同,尽管该类是抽象类,但是它仍然有 3 个成员变量,7 个成员方法和 1 个构造方法。 现在如果你尝试如下的例子:

    AbstractDemo.java 文件代码:
    /* 文件名 : AbstractDemo.java */

    public class AbstractDemo
    {
       public static void main(String [] args)
       {
          /* 以下是不允许的,会引发错误 */
          Employee e = new Employee("George W.", "Houston, TX", 43);
     
          System.out.println("\n Call mailCheck using Employee reference--");
          e.mailCheck();
        }
    }
    
    当你尝试编译AbstractDemo类时,会产生如下错误:
    Employee.java:46: Employee is abstract; cannot be instantiated
          Employee e = new Employee("George W.", "Houston, TX", 43);
                       ^
    1 error
    
    继承抽象类
    我们能通过一般的方法继承Employee类:

    Salary.java 文件代码:
    /* 文件名 : Salary.java */

    public class Salary extends Employee
    {
       private double salary; //Annual salary
       public Salary(String name, String address, int number, double
          salary)
       {
           super(name, address, number);
           setSalary(salary);
       }
       public void mailCheck()
       {
           System.out.println("Within mailCheck of Salary class ");
           System.out.println("Mailing check to " + getName()
           + " with salary " + salary);
       }
       public double getSalary()
       {
           return salary;
       }
       public void setSalary(double newSalary)
       {
           if(newSalary >= 0.0)
           {
              salary = newSalary;
           }
       }
       public double computePay()
       {
          System.out.println("Computing salary pay for " + getName());
          return salary/52;
       }
    }
    
    尽管我们不能实例化一个 Employee 类的对象,但是如果我们实例化一个 Salary 类对象,该对象将从 Employee 类继承 7 个成员方法,且通过该方法可以设置或获取三个成员变量。

    AbstractDemo.java 文件代码:
    /* 文件名 : AbstractDemo.java */

    public class AbstractDemo
    {
       public static void main(String [] args)
       {
          Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP", 3, 3600.00);
          Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00);
     
          System.out.println("Call mailCheck using Salary reference --");
          s.mailCheck();
     
          System.out.println("\n Call mailCheck using Employee reference--");
          e.mailCheck();
        }
    }
    
    以上程序编译运行结果如下:
    Constructing an Employee
    Constructing an Employee
    Call mailCheck using  Salary reference --
    Within mailCheck of Salary class
    Mailing check to Mohd Mohtashim with salary 3600.0
    
    Call mailCheck using Employee reference--
    Within mailCheck of Salary class
    Mailing check to John Adams with salary 2400.
    
    抽象方法
    如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。
    Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
    抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。
    public abstract class Employee
    {
       private String name;
       private String address;
       private int number;
       
       public abstract double computePay();
       
       //其余代码
    }
    
    声明抽象方法会造成以下两个结果:
    如果一个类包含抽象方法,那么该类必须是抽象类。
    任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
    继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象。
    如果Salary类继承了Employee类,那么它必须实现computePay()方法:

    Salary.java 文件代码:
    /* 文件名 : Salary.java */

    public class Salary extends Employee
    {
       private double salary; // Annual salary
      
       public double computePay()
       {
          System.out.println("Computing salary pay for " + getName());
          return salary/52;
       }
     
       //其余代码
    }
    

    抽象类总结规定:

    1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
    2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
    3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
    4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
    5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
    展开全文
  • 主要介绍了java 抽象类的实例详解的相关资料,希望通过本大家能理解掌握这部分内容,需要的朋友可以参考下
  • JAVA抽象类与接口详解 例子很好

    万次阅读 2012-10-11 11:39:32
    Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...
  • Java抽象类Animal和Cat

    千次阅读 2018-11-09 13:58:31
    Java抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不...
  • Java抽象类用法示例详解

    千次阅读 2016-01-09 18:56:48
    转自Java抽象类用法示例详解 Java抽象类的定:java抽象类体现数据抽象的思想,是实现程序多态性的一种手段。也提到抽象类与抽象方法的限制,下面我们会通过一下java抽象类小示例来给你介绍抽象类的用法。希望对你...
  • java-抽象类和继承抽象类

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

    千次阅读 热门讨论 2008-05-29 14:57:00
    Java接口和Java抽象类 在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解。 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,...
  • 浅析JAVA抽象类和接口的比较

    千次阅读 2018-08-02 00:02:32
    抽象类(abstract class)和接口(interface)是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。抽象类和接口之间在对于抽象类定义的支持方面具有很大的...
  • java抽象类和接口

    千次阅读 2012-05-03 15:11:03
    Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...
  • java抽象类与接口

    千次阅读 2015-01-08 14:57:40
    接口和抽象类java语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础。(在面向对象中,接口的不同实现即为多态) 在那些面向对象(object)的程序设计语言的概念中,类(classss)指的是一种抽象的数据...
  • Java抽象类与oop三大特征

    万次阅读 2018-05-27 10:00:37
    一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它 只有声明,而没有具体的实现 。抽象方法的声明格式为:abstract void fun();抽象方法 必须用 abstract关键字进行修饰 。如果一个...
  • 深入理解java抽象类和接口,为以后设计接口和类做好铺垫!
  • 此资源是本人博客中的抽象工厂模式的例子代码资源,给供参考
  • 十、JAVA抽象类的定义使用

    千次阅读 2018-04-26 20:43:57
    抽象类的基本概念 抽象方法,只声明而未实现的方法我们称为抽象方法,所有的抽象方法都需要用abstract关键字声明,包含抽象方法的类也需要使用abstract关键字声明,抽象类和普通类相比,区别在于抽象类带有抽象方法...
  • 10个Java抽象类和接口的面试题

    千次阅读 2018-03-04 11:00:44
    1. Java抽象类可以有构造函数吗?可以有,抽象类可以声明并定义构造函数。因为你不可以创建抽象类的实例,所以构造函数只能通过构造函数链调用(Java中构造函数链指的是从其他构造函数调用一个构造函数),例如,当...
  • 学些Java抽象类和抽象方法,书中介绍一个例子:【问题描述】编写一个抽象父类SpeedMeter速度表,提供普通方法getSpeed()计算速度,给子类使用,但留给子类实现抽象方法getRadius(),且getSpeed()依赖getRadius();...
  • java 抽象类为什么不能被实例化?

    千次阅读 2019-08-29 09:30:16
    转载:java 抽象类为什么不能被实例化? 我把CSDN论坛里面的一个帖子内容list到下面,自己看着理解,东家一言,西家一语,杂合起来,基本上也就理解了java中的抽象类为什么不能被实例化了。 因篇幅有限,只能罗列...
  • Java抽象类与接口的详细说明

    万次阅读 多人点赞 2019-07-13 20:44:39
    首先简单的介绍一下抽象类: 定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常识对不对,...
  • Java抽象类和接口的区别

    万次阅读 多人点赞 2019-02-07 14:10:07
    Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口...
  • java抽象类与接口的区别

    千次阅读 2017-10-14 15:08:27
    java抽象类与接口的区别一、抽象类用abstract关键字修饰一个类时,这个类叫做抽象类,用abstract修饰一个方法时,这个方法叫做抽象方法。含有抽象方法的类必须被声明为抽象类抽象类必须被继承,抽象方法必须被...
  • Java:接口和抽象类,傻傻分不清楚?

    千次阅读 多人点赞 2019-04-26 07:28:15
    再来聊聊接口和抽象类
  • java基础——抽象类&接口

    千次阅读 多人点赞 2019-01-15 20:18:37
    本文介绍抽象类和接口的定义及使用方法,并且介绍两者的区别。 抽象类 抽象类 抽象类是在普通类的基础上扩充了一些抽象方法。(注:抽象类除了含有抽象方法以外,和普通类一样,也可以含有成员变量和普通的成员...
  • Java抽象类得作用

    千次阅读 2019-06-18 17:59:40
    Java抽象类,可以理解为一种约定工具,在代码中抽象类在某种情况适合用来写出大体框架,具体实现流程由抽象类事先定义完毕,具体实现过程可以定义抽象方法,而抽象方法交由子类去具体实现。 举个例子:定义一个...
  • 深入理解Java抽象类与接口

    千次阅读 2017-01-05 21:11:05
    Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,956
精华内容 81,582
热门标签
关键字:

java抽象类代码例子

java 订阅