精华内容
下载资源
问答
  • java中抽象类和接口的特点

    千次阅读 2016-08-02 15:19:34
    java中抽象类特点: 1. 如果一个类有抽象方法,那么这个类一定是抽象类 2. 抽象类中不一定有抽象方法 3. 抽象类中可以存在抽象方法 4. 抽象类中可以存在构造方法 5. 抽象类中可以存在普通属性、方法、静态属性和...

    java中抽象类的特点:

    1. 如果一个类中有抽象方法,那么这个类一定是抽象类

    2. 抽象类中不一定有抽象方法

    3. 抽象类中可以存在抽象方法

    4. 抽象类中可以存在构造方法

    5. 抽象类中可以存在普通属性、方法、静态属性和静态方法

    6. 抽象类中的抽象方法需要有子类实现,如果子类不实现,则子类也需要定义为抽象的



    java中接口的特点:

    1. 接口中的方法,永远都被public来修饰

    2. 接口中没有构造方法,也不能实例化接口对象

    3. 接口中只有方法的声明,没有方法体

    4. 接口中只有常量,如果定义变量,在编译的时候都会默认加上“public static final”

    5. 接口中定义的方法都需要实现类来实现,如果实现类不能实现接口中的所有方法,则实现类需要定义为抽象类

    6. 静态方法不能被子类重写(覆盖),因此接口中不定声明静态方法

    7. 使用接口可以实现多继承


    接口和抽象类的区别之处:

    1. 接口中所有的方法隐含都是抽象的,而抽象类则可以同时包含抽象和非抽象的方法

    2. 类可以实现很多个接口,但是只能继承一个抽象类

    3. 类可以不实现抽象类和接口声明的所有方法,在这种情况下,类也必须得声明成是抽象的

    4. 抽象类可以在不提供接口方法实现的情况下实现接口

    5. java接口中声明的变量默认都是final的,抽象类可以包含非final变量

    6. java接口中的成员函数默认都是public的,抽象类中的成员函数可以是private,protected或者是public的

    7. 接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是如果它包含main方法的话是可以被调用的


    展开全文
  • Java接口和Java抽象类,java接口抽象Java接口和Java抽象类关键字: java接口 java抽象类 默认适配模式Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方才是它们的最佳位置呢?(1)Java抽象...

    Java接口和Java抽象类,java接口抽象

    Java接口和Java抽象类

    关键字: java接口 java抽象类 默认适配模式

    Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方才是它们的最佳位置呢?

    (1)Java抽象类的优点:可以提供某些方法的部分实现,而Java接口却不可以。

    (2)Java接口的优点:由于Java的单继承性,一个Java类只能实现一个Java抽象类,而却可以实现任意多个接口,因此Java接口是定义混合类型的理想工具。

    (3)从设计理念层面看:Java抽象类在Java语言中体现了一种继承关系,即父类和派生类在概念本质上应该是相同的,而对于Java接口则不然,并不要求Java接口的实现者和接口定义在概念本质上是一致的,仅仅是实现了接口定义的契约而已。下面看一个很好的实例。

    设计一个AlarmDoor,本质上是Door,同时它具有报警功能,我们应该如何来设计呢?

    前面已经说过,抽象类在Java语言中表示一种继承关系,所以对于Door这个概念,应该使用抽象类实现。另外,AlarmDoor又具有报警功能,说明它又能完成报警概念中定义的行为,所以报警概念可以通过接口方式实现,代码如下:

    Java代码

    1. abstract class Door {

    2. abstract void open();

    3. abstract void close();

    4. }

    5.

    6. interface Alarm {

    7. void alarm();

    8. }

    9.

    10.class AlarmDoor extends Door implements Alarm {

    11. void open() {

    12. //implement

    13. }

    14. void close() {

    15. //implement

    16. }

    17. void alarm() {

    18. //implement

    19. }

    20.}

    abstract class Door {

    abstract void open();

    abstract void close();

    }

    interface Alarm {

    void alarm();

    }

    class AlarmDoor extends Door implements Alarm {

    void open() {

    //implement

    }

    void close() {

    //implement

    }

    void alarm() {

    //implement

    }

    }

    (4)结合Java抽象类和Java接口的优点,定义一个经典的设计模式:声明类型的工作仍然由Java接口承担,但同时给出一个Java抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类。也就是说在层次结构中,Java接口在最上面,然后紧跟着抽象类,这个模式就是“默认适配模式”。在Java语言API中使用了这种模式,而且全部遵循一定的命名规范:Abstract+接口名。

    相关文章暂无相关文章

    展开全文
  • 抽象类的成员特点: 成员变量:既可以是变量也可以是常量 构造方法:有 用于子类访问父类的初始化 成员方法:既可以是抽象的,也可以是非抽象的 抽象类的成员方法特性: A:抽象方法,强制要求子类去做...

    抽象类的成员特点:

    • 成员变量:既可以是变量也可以是常量
    • 构造方法:有
      用于子类访问父类的初始化
    • 成员方法:既可以是抽象的,也可以是非抽象的

    抽象类的成员方法特性:

    • A:抽象方法,强制要求子类去做的事情
    • B:非抽象方法 子类继承的事情,提高代码复用性

    代码示例:

    abstract class Animal {
    	public int num = 10;
    	public final int num2 = 20;
    	public Animal() {
    	
    	}
    	public Animal(String name,int age) {
    		
    	}
    	public abstract void show();
    	public void method() {
    		System.out.println("method");
    	}
    }
    
    class Dog extends Animal {
    	public  void show() {
    		System.out.println("show Dog");
    	}
    }
    
    class AbstractDemo2 {
    	public static void main(String[] args) {
    		//创建对象
    		Animal a = new Dog();
    		a.num = 100;
    		System.out.println(a.num);
    		
    		System.out.println(a.num2);
    		System.out.println("---------");
    		a.show();
    		a.method();
    	}
    }
    

    细节1:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?

    • 可以
    • 没有抽象方法,可以不让外界创建对象

    细节2:abstract不能和哪些关键字共存?

    • private 冲突
    • final 冲突
    • static 无意义

    代码示例:

    abstract class Fu {
    	//public abstract void show();
    	//非法的修饰符组合: abstract和private
    	//private abstract void show();
    	//非法的修饰符组合: abstract和final
    	//final abstract void show();
    	//非法的修饰符组合: abstract和static
    	 //static abstract void show();
    	 public static void method() {
    		 System.out.println("method");
    	 }
    }
    
    class Zi extends Fu {
    	public void show() {
    		
    	}
    }
    
    class AbstractDemo3 {
    	public static void main(String[] args) {
    		Fu.method();
    	}
    }
    
    展开全文
  • Java抽象类特点

    2020-05-21 22:32:07
    Java抽象类Java抽象类Java抽象类

    Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。用abstract关键字修饰的方法,叫做抽象方法,抽象方法不能有方法体;

    抽象类的特点
    1、抽象类不能被实例化
    2、抽象类中可以有属性(不存在抽象属性的说法)
    3、抽象类中可以有构造方法
    4、抽象类中可以有普通方法
    5、抽象类中可以有抽象方法、也可以没有抽象方法(抽象方法不能定义为private)
    6、有抽象方法的类必须被定义为抽象类(接口)
    7、抽象类的子类必须实现抽象类中的所有抽象方法,或者子类也定义为抽象类

    //抽象类
    public abstract  class TestAbstract {
        //我是抽象类中的属性
        public String str;
    
        //构造方法
        public TestAbstract(){
            System.out.println("我是抽象类中的构造方法");
        }
        //普通方法
        public void test(){
            System.out.println("我是抽象类中的普通方法");
        }
        //抽象方法
        public abstract void test1();
    
    }
    
    展开全文
  • [Java基础]Java中抽象类和接口有构造方法吗?

    万次阅读 多人点赞 2017-07-05 10:56:13
    2.问题描述:Java中抽象类和接口有构造方法吗? 3.问题解答: (1)Java中抽象类和接口有构造方法吗? ①在接口 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces ...
  • java中抽象类与接口

    2017-04-21 20:30:14
    java抽象类和接口
  • Java中抽象类和抽象方法的特点是什么?抽象类不能直接new一个对象,必须写一个继承类来重写其抽象方法。同样抽象方法也不能直接调用,调用的都是具体的方法。java中什么叫抽象方法和抽象类及他们的特点,说的7....
  • Java中抽象类和接口的区别

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

    2021-05-06 14:22:31
    Java中抽象类主要是作为一个公共父类的作用,它可以抽象出用来描述一种类型应该具备的基本特征与功能,具体行为则由子类通过方法重写来完成。 抽象类具有的性质 类定义前需要加上abstract关键字 抽象类中可以没有...
  • Java中抽象类

    2018-09-28 10:19:55
    抽象类用abstract修饰,必须有抽象方法,不能被实例化,抽象类可以有构造方法。抽象方法也用abstract修饰。抽象方法有两个特点,一是被abstract修饰,二是没有方法体。 abstract public class Fruit { public ...
  • Java中抽象类的成员特点

    千次阅读 2019-04-24 11:29:42
    - A:抽象类的成员特点 a.成员变量:既可以是变量,也可以是常量。abstract是否可以修饰成员变量?不能修饰成员变量 b.构造方法:有。 用于子类访问父类数据的初始化。 c.成员方法:既可以是抽象的,也可以是非抽象的...
  • java中抽象类与接口的区别

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

    千次阅读 多人点赞 2020-04-19 16:44:36
    文章目录Java中抽象类与接口Java中抽象类Java中接口 Java中抽象类与接口 Java中抽象类 抽象类的定义 定义:类的修饰符 abstract class 类名 抽象类跟普通的类定义相比,就是在原来的基础上,加上一个abstract...
  • 回想前面我们的猫狗案例,提取出一个动物,并且我们在前面也创建了动物对象,其实...同理,我们也可以推想,不同的动物吃的东西应该是不一样的,所以,我们不应该在动物类中给出具体体现,而是给出一个声明即可。 ...
  • Java中抽象类与接口区别

    千次阅读 2017-12-20 09:18:19
    抽象类抽象类是无法实例化的特殊类。所以问题是为什么我们需要一个不能被实例化的类,抽象类只能是子类(继承自)。换句话说,它只允许其他类继承它,但不能实例化。优点是它为所有子类执行特定的层次结构。简而言之...
  • Java中抽象类与方法的重写

    千次阅读 2020-11-10 22:29:33
    1. 抽象类 关键字:abstract 类:用来描述一类具体的事物 抽象类:抽象的、模糊的、不具体的类 在Java的普通类是不允许多继承的,原因是会出现调用 不明确的问题;...抽象类中可以有构造器,但是不能创建
  • PAGE 3 教 案 单元内容 抽象类 单元序号 15 单元课时 4 教学...抽象类特点 抽象类的使用 任务定位 教学重点 必须达成的 抽象类的理解 抽象类的应用 教学难点 不利因素 抽象类中有无方法体的区别 抽象类的使用 教学关
  • 抽象类和接口在面试经常被同时问到,两者有一定的相似点与不同点,很容易发生混淆。我本人也是记住了忘,忘了复习一下,过段时间又忘了。所以说今天写下这篇文章总结一下两者的特点与区别,顺便巩固一下自己的Java...
  • 深入理解Java中抽象类与接口

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

    2020-07-09 19:14:08
    java中抽象类 1.概念 随着继承层次一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类...
  • java 抽象类特点

    千次阅读 2019-04-21 19:59:38
    抽象类特点:   1 抽象方法和抽象类使用 abstract 修饰   2 只要有抽象方法的类,必须是抽象类   3 抽象类中不一定有抽象方法   4 没有抽象方法的抽象类有意义,防止外界创建对象 防止外界...
  • Java中抽象类和接口,及其两者区别

    千次阅读 2020-06-14 11:09:27
    如有侵权,请留言删除。 1.抽象类 用abstract修饰的类叫做抽象类。 在讲抽象类之前有必要强调一下abstract修饰符: 1.abstract修饰的类为抽象类,此类不能有...关于抽象类的使用特点: 1.抽象类不能有对象,(不能用ne
  • Java中抽象类和接口有构造方法吗? 原创 2017年07月05日 10:56:13 标签:java /构造方法 /接口 /抽象类 11576 1.时间:2017-07-05 10:25:44 YuanMxy 2.问题描述:Java中抽象类...
  • java-抽象类

    2017-05-04 21:53:35
    抽象类特征: 包含一个抽象方法的类必须是抽象类 抽象类和抽象方法都要使用abstract关键字声明 抽象方法只需声明不需要实现 抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。 ...
  • java抽象类特点

    2019-08-14 07:01:29
    一、特点: 1、方法只有声明,没有实现时...4,抽象类中的抽象方法 : 强制要求子类做的事 抽象类中非的抽象方法 : 子类继承的事情,提高代码的复用性 二、细节: 1、抽象类中有构造函数,用于给子类初始化。 2...
  • 概述:Java中,一个没有方法体的方法应该定义为抽象方法,而类如果有抽象方法,该类必须定义为抽象类。 */ public class Cat extends Animal{ @Override public void eat() { System.out.println("猫吃...
  • java中抽象类与接口的异同

    千次阅读 2015-12-07 20:50:41
    1、 接口和抽象类相似,它们都具有如下特征 • 接口和抽象类都不能被实例化。只能被其他类实现和继承。 • 接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法 2、接口和抽象类...
  • 简述Java中抽象类和接口,及其两者区别

    万次阅读 多人点赞 2018-04-19 13:00:48
    在说区别之前,先简要说一下什么是抽象类和接口   1.抽象类    用abstract修饰的类叫做抽象类。    在讲抽象类之前有必要强调一下abstract修饰符:  1.abstract修饰的类为抽象类,此类不能有对象,...
  • Java中抽象类与接口有什么区别

    千次阅读 多人点赞 2019-06-13 20:55:16
    abstract class和interface是Java中对于抽象类定义两种机制,正是由于这两种机制的存在,才赋予Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有相当大的相似性,设置可以互相...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 204,533
精华内容 81,813
关键字:

java中抽象类的特点

java 订阅