精华内容
下载资源
问答
  • 主要介绍了JAVA抽象类和抽象方法(abstract),结合实例形式分析了java抽象类及抽象方法相关定义、使用技巧与操作注意事项,需要的朋友可以参考下
  • 关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。 理解:假设创建了抽象类的...

    关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。

    1. 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
      理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。
    2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
      理解:子类的构造方法中,有默认的super(),需要访问父类构造方法。
    3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
      理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。
    4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
      理解:假设不重写所有抽象方法,则类中可能包含抽象方法。那么创建对象后,调用抽象的方法,没有意义
    package cn.itcast.day09.demo12;
    public abstract class Fu {
    
        public Fu() {
            System.out.println("抽象父类构造方法执行!");
        }
    
        public abstract void eat();
    
    }
    
    public class Zi extends Fu {
    
        public Zi() {
            // super();
            System.out.println("子类构造方法执行");
        }
    
        @Override
        public void eat() {
    
        }
    
    
    }
    
    /*
    一个抽象类不一定含有抽象方法,
    只要保证抽象方法所在的类是抽象类,即可。
    
    这样没有抽象方法的抽象类,也不能直接创建对象,在一些特殊场景下有用途。
     */
    public abstract class MyAbstract {
    }
    
    public class DemoMain {
    
        public static void main(String[] args) {
            Zi zi = new Zi();
            zi.eat();
        }
    
    }
    
    // 最高的抽象父类
    public abstract class Animal {
    
        public abstract void eat();
    
        public abstract void sleep();
    
    }
    
    
    // 子类也是一个抽象类
    public abstract class Dog extends Animal {
    
        @Override
        public void eat() {
            System.out.println("狗吃骨头");
        }
    
        // public abstract void sleep();
    }
    
    public class DogGolden extends Dog {
        @Override
        public void sleep() {
            System.out.println("呼呼呼……");
        }
    }
    
    public class Dog2Ha extends Dog {
        @Override
        public void sleep() {
            System.out.println("嘿嘿嘿……");
        }
    }
    
    public class DemoMain {
    
        public static void main(String[] args) {
    //        Animal animal = new Animal(); // 错误!
    
    //        Dog dog = new Dog(); // 错误,这也是抽象类
    
            Dog2Ha ha = new Dog2Ha(); // 这是普通类,可以直接new对象。
            ha.eat();
            ha.sleep();
            System.out.println("==========");
    
            DogGolden golden = new DogGolden();
            golden.eat();
            golden.sleep();
        }
    
    
    }
    
    展开全文
  • 主要介绍了Java抽象类和抽象方法定义与用法,结合实例形式详细分析了Java抽象类和抽象方法相关原理、定义、使用方法及操作注意事项,需要的朋友可以参考下
  • Java抽象类注意事项

    2021-07-16 10:48:02
    1.抽象类不能创建对象,如果创建,编译...3.抽象类中,不一定包含抽象方法,但是抽象方法的类必定是抽象类 4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类 ...

    1.抽象类不能创建对象,如果创建,编译无法通过而报错,只能创建其非抽象子类的对象

    2.抽象类中可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

    3.抽象类中,不一定包含抽象方法,但是抽象方法的类必定是抽象类

    4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类

    展开全文
  • 这篇文章从不同角度归纳介绍了抽象类的知识点及其注意事项。文中引用的具体例子在这里:抽象类的一个例子 Triangle类是继承自抽象类GeometriObject的具体子类 GeometriObject中包含两个抽象方法:getPerimeter,...

    这篇文章从不同角度归纳介绍了抽象类的知识点及其注意事项。文中引用的具体例子在这里:抽象类的一个例子

    • Triangle类是继承自抽象类GeometriObject的具体子类
    • GeometriObject中包含两个抽象方法:getPerimeter,getArea/
    • Triangle中实现了这两个方法

    好了,进入正题。

    一,抽象类关键点

    抽象类不可以用于创建对象。 抽象类可以包含抽象方法, 这些方法将在具体的子类中实现。

    二,抽象类与抽象方法的定义

    1.抽象类

    • 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类

    • 抽象类设计得非常抽象, 以至于它都没有任何具体的实例。

    • 在类头使用 abstract修饰符表示该类为抽象类
      例如:abstract class GeometricObject

    2.抽象方法

    GeometricObject就成为一个抽象类。

    • 抽象方法指一些只有方法声明,而没有具体方法体的方法。
    • 在方法头中使用 abstract 修饰符表示
      例如:public abstract double getPerimeter();

    在UML图形记号中,抽象类和抽象方法的名字用斜体表示.

    三,注意事项

    1.关于抽象类的构造函数的问题

    1. 抽象类的构造方法定义为 Protected, 因为它只被子类使用。
    2. 创建一个具体子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。

    2.抽象类与常规类的区别

    1. 抽象类和常规类很像,但是不能使用new 操作符创建它的实例。
    2. 抽象类也不能使用 new 操作符来初始化的。 但是,仍然可以定义它的构造方法, 这个构造方法在它的子类的构造方法中调用。
      例如, CeometricObject 类的构造方法在 Triangle 类中调用:
    public Triangle(String color, boolean filled, double side1, double side2, double side3) {
            super(color, filled);
            this.side1 = side1;
            this.side2 = side2;
            this.side3 = side3;
        }
    
    
    1. 不能使用 new 操作符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型。
      例如, 下面的语句创建一个元素是 CeometricObject 类型的数组是正确的:
      GeometricObject[] objects = new CeometricObject[10];
      然后可以创建一个 CeometricObject 的实例, 并将它的引用赋值给数组,如下所示:
      Objects[0] = new Triangle();

    3.抽象方法的定义和实现问题

    1. 抽象方法在抽象类中只有定义而没有实现。 它的实现由子类提供
      例如:抽象类CeometricObject 中两个抽象方法:
    //两个抽象方法
        public abstract double getArea();
        public abstract double getPerimeter();
    
    1. 抽象类拓展的非抽象子类必须将此抽象类的所有抽象方法重写
      例如:CeometricObject 的子类Triangle类
     //一定要重写实现抽象父类中的抽象方法
        @Override
        public double getArea() {
            double s = (side1 + side2 + side3)/2;
            return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
        }
    
        @Override
        public double getPerimeter() {
            return side1+side2+side3;
        }
    
    
    1. 如果抽象父类的子类不能实现所有的抽象方法, 那么子类也必须定义为抽象类。也就是子类可以覆盖父类的方法并仍将它定义为 abstract

    2. 抽象方法不能定义在非抽象类中。

    3. 还要注意到,抽象方法是非静态的

    4.抽象方法和抽象类之间的关系

    1. 只要包含抽象方法,该类必须声明为抽象类。
    2. 但是抽象类可以不包含抽象方法

    5.抽象类父类和子类的关系

    1. 父类是抽象类
      • 子类是非抽象类,那么子类必须重写实现父类中的所有抽象方法
      • 子类也是抽象类,子类不必实现父类中的所有抽象方法
    2. 子类是抽象类。父类既可以是抽象的也可以是具体的。
      例如, Object 类是具体的, 但是它的子类如 CeometricObject 可以是抽象的

    友情链接——纯干货
    Java面向对象,这些你一定想再来复习复习:

    1. Java继承入门全部知识归纳总结
    2. Java多态基础知识完整的归纳总结
    3. Java接口入门全部知识总结
    4. Java可见性修饰符public/private/protected的归纳总结
    展开全文
  • 主要介绍了Java的抽象方法和抽象类,结合实例形式详细分析了java抽象方法和抽象类的相关原理、使用方法及操作注意事项,需要的朋友可以参考下
  • 2.实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。 3.抽象方法没有方法体,所以多个父接口中的抽象方法如果重复也不会起冲突。 抽象方法所在的类,必须是抽象类才行。 抽象类的定义格式: public ...

    接口中最重要的就是抽象方法,抽象方法的定义格式:

    [public] [abstract] 返回值类型  方法名称(参数列表);
    

    注意:
    1.抽象方法的定义就是加上abstract关键字,然后去掉大括号,直接分号结束。
    2.实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
    3.抽象方法没有方法体,所以多个父接口中的抽象方法如果重复也不会起冲突。

    抽象方法所在的类,必须是抽象类才行。

    抽象类的定义格式:

    public abstract class 类名(){
    }
    

    抽象类与普通类的区别:
    1.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
    2.抽象类不能用来创建对象(即实例化对象),需要依靠子类采用向上转型的方式处理;
    3.抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类;
    4.如果一个类继承于一个抽象类,则子类必须实现抽象父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类。
    5.抽象类继承,子类里面有明确的方法覆写要求,而普通类可以有选择性的来决定是否需要覆写;
    6.抽象类实际上就比普通类多了一些抽象方法而已,其他组成部分和普通类完全一样;

    注意:
    虽然一个类的子类可以去继承任意的一个普通类,可是从开发的实际要求来讲,普通类尽量不要去继承另外一个普通类,而是去继承抽象类。

    展开全文
  • 主要介绍了Java中抽象类用法与注意点,结合实例形式详细分析了java抽象类的定义、使用及相关操作注意事项,需要的朋友可以参考下
  • 抽象类和抽象方法都通过abstract关键字来修饰 示例如下: /** * 交通工具的抽象类 */ public abstract class Traffic { } 什么是抽象方法 使用abstract修饰符修饰的方法被称为抽象方法 什么时候使用抽象方法? 当...
  • 如何使用抽象类和抽象方法: 1. 不能直接创建new抽象类对象 2. 必须使用一个子类来继承抽象父类 3. 子类必须覆盖重写抽象父类当中所有的抽象方法(注: 覆盖重写(实现):去掉抽象方法的abstract关键字,然后补上...
  • 主要介绍了Java抽象类原理与用法,结合实例形式详细分析了Java抽象类相关概念、原理、定义、使用方法及操作注意事项,需要的朋友可以参考下
  • java抽象类使用注意事项

    千次阅读 2021-04-23 13:53:30
    抽象类的使用条件:当父类的某些方法,需要声明,但是有不确定如果实现时,可以将其声明为抽象方法那么这个类也就要声明为抽象类,那么这个类就时抽象类 当父类的一些方法不能确定时,可以用abstract关键字来修饰该...
  • Java抽象类注意事项

    2019-07-03 16:48:45
    抽象类注意事项
  • JAVA中抽象方法和抽象类注意事项 1.抽象类不能创建对象 2.抽象类可以有构造方法,供子类使用时,初始化父类成员使用 父类 package demo12; public abstract class Fu { public Fu(){ System.out.println("抽象...
  • 主要介绍了java抽象类和接口定义与用法,结合实例形式详细分析了java抽象类和接口的基本概念、原理、定义、使用方法及操作注意事项,需要的朋友可以参考下
  • 抽象类的使用及其注意事项 概述 加深对抽象类概念的理解及属性该类的使用 1.什么是抽象类 通俗的说,不是具体的东西,都是抽象的,那么在java中,可以理解为不是具体的类,就是抽象类。对抽象类的理解,需要结合...
  • 主要介绍了Java中的接口和抽象类用法,结合实例形式较为详细的分析了Java中关于接口和抽象类的概念、定义、用法与相关注意事项,需要的朋友可以参考下
  • 主要介绍了Java 的抽象类原理与用法,结合实例形式分析了java抽象类与接口的相关概念、原理、使用方法及操作注意事项,需要的朋友可以参考下
  • 主要介绍了Java接口和抽象类用法,结合实例形式总结分析了Java接口与抽象类的具体定义、使用技巧与相关注意事项,需要的朋友可以参考下
  • 6.一个普通的方法继承了抽象类之后,一定要重写抽象类抽象方法; 7.如果一个类,继承了抽象类但是又不想重写,可以把类设置成抽象类,但是迟早是都要重写的; 8.抽象方法不能是private; abstract class Shape{ ...
  • 不一全部概括,只说重点易错注意部分。 继承,重载,重写,调用父类 package jicheng; public class Jicheng_1Dome { public static void main(String[] args) { //创建对象进行调用 Jicheng_1Dome src = new ...
  • 抽象类注意事项 抽象类不能创建对象,我们只能创建其非抽象子类的对象 抽象类可以有构造方法,是提供其子类创建对象时,初始化父类成员使用的 抽象类不一定包含抽象方法,但包含抽象方法的一定是抽象类 抽象...
  • java抽象类注意事项

    2019-03-25 18:01:21
    3、抽象类中不一定包含抽象方法(也可以为空),但是 有抽象方法的的类 一定是抽象类。 4、抽象类的子类:若也是抽象子类,可以不全部重写父抽象类方法; 但是 若是普通子类,则 一定 要重写父抽象类的 所有 方法...
  • java抽象类_Java抽象类

    2020-07-15 21:14:52
    java抽象类Abstract class in Java is similar to interface except that it can contain default method implementation. An abstract class can have an abstract method without body and it can have methods ...
  • 抽象类注意事项抽象类不能实例化 不能造对象(抽象类中一定也有构造器,用于创建子类对象时此构造器可以被调用) 抽象类中不一定有抽象方法,但是抽象方法一定存在于抽象类中 若子类重写了父类中所有的抽象...
  • (一)关于抽象类注意点 1、被abstract修饰的类称之为抽象类,被abstract修饰的方法称之为抽象方法 2、一个类中如果有抽象方法,那么这个类必须成为抽象类 3、抽象类不能实例化!!,换句话说,就是不能自己new...
  • 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式普通类一样。 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段...
  • Java 抽象类 使用方法【非常详细】

    千次阅读 2017-12-14 15:16:57
    一、抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含...而抽象类是指在普通类的结构里面增加抽象方法的组成部分。 那么什么叫抽象方法呢?在所有的普通方法上面都会
  • 抽象方法和抽象类抽象的概念抽象方法和抽象类的格式抽象方法和抽象类的使用抽象方法和抽象类的注意事项 抽象的概念 如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法。 图示 抽象方法...
  • Java抽象类和接口,及其两者区别

    千次阅读 2020-06-14 11:09:27
    1.抽象类 用abstract修饰的类叫做抽象类。 在讲抽象类之前有必要强调一下abstract修饰符: 1.abstract修饰的类为抽象类,此类不能有对象,(无法对此类进行实例化,说白了就是不能new); 2.abstract修饰的方法为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,921
精华内容 16,368
关键字:

java抽象类和抽象方法的注意事项

java 订阅