精华内容
下载资源
问答
  • 抽象类 抽象类和一般类的异同点

    千次阅读 2014-09-27 17:55:47
    抽象类: 抽象:笼统,模糊,看不懂!不具体。 特点: 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。 抽象方法必须定义在抽象类中。该类必须也被abstract修饰。 2,抽象类不可以被...

    抽象类  abstract

    说白了,就是不让抽象类建立对象

    抽象:笼统,模糊,看不懂!不具体。

    当多个类中出现相同功能,但是功能主题不同,这是可以进行向上抽取的。

    这时,只抽取功能定义,而不抽取功能主体。


    特点:

    1,抽象方法一定在抽象类中

    2,抽象方法和抽象类都必须被abstract关键字修饰。

    3,抽象类不可以new对象。

    4,抽象类中的抽象方法要被使用,必须由子类覆写所有的抽象方法后,建立自对象调用。如果只覆盖部分抽象方法,那么该子类还是抽象类。


    举例子

    avstract 的类和方法,强制让继承他的类去覆写,去实现方法。

    还是餐厅,炒菜,我点菜,是抽象的,点完菜后,强制厨师跟我做菜,将我点的菜实例化。


    1,抽象类中有构造函数吗?
    有,用于给子类对象进行初始化。

    2,抽象类可以不定义抽象方法吗?
    可以的。 但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类。
    通常这个类中的方法有方法体,但是却没有内容。

    abstract class Demo
    {
    void show1(); //这叫没方法体

    void show2()
    {} //这叫有方法体没内容。(其实有个return)

    }


    3,抽象关键字不可以和那些关键字共存?

    private 不行非法的修饰符组合

    static   不行非法的修饰符组合

    final不行

    4,抽象类一定是个父类吗?

    是的。因为需要子类覆盖其方法后才可以对子类实例化


    抽象类和一般类的异同点。
    相同点:
    抽象类和一般类都是用来描述事物的,都在内部定了成员。
    不同:
    1,一般类有足够的信息描述事物。
      抽象类描述事物的信息有可能不足。
    2,一般类中不能定义抽象方法,只能定非抽象方法。
      抽象类中可定义抽象方法,同时也可以定义非抽象方法。
    3,一般类可以被实例化。

      抽象类不可以被实例化。


    雇员示例:

    需求:公司中程序员有姓名,工号,薪水,工作内容。
    项目经理除了有姓名,工号,薪水,还有奖金,工作内容。
    对给出需求进行数据建模。

    分析:
    在这个问题领域中,先找出涉及的对象。
    通过名词提炼法。
    程序员:
    属性:姓名,工号,薪水、
    行为:工作。
    经理:
    属性:姓名,工号,薪水,奖金。
    行为:工作。

    程序员和经理不存在着直接继承关系,

    但是程序员和经理却具有共性内容。
    可以进行抽取。因为他们都是公司的雇员 

    可以将程序员和经理进行抽取.建立体系.

    // 雇员
    abstract class Employee
    {
    	private String name;
    	private String id;
    	private double pay;
    	Employee(String name,String id,double pay)
    	{
    	this.name=name;
    	this.id=id;
    	this.pay=pay;
    	}
    
    	public abstract void work();
    
    }
    // 程序员
    class Programmer extends Emploryee
    {
    	Programmer(String name,String id, double pay)
    	{
    			suprt(name,id,pay);
    	}
    	public void work()
    	{
    		System.out.println("code..");
    	}
    }
    
    //经理
    class Manager extends Employee
    {
    	private int bonus;
    	Manager(String name,String id ,double pay,int bonus)
    	{
    		super(name,id,pay);
    		this.bonus=bonus;
    	}
    	public void work()
    	{
    		System.out.println("manager");
    	}
    }
    
    class AbstractDemo
    {
    	public static void main (String [] args)
    	{
    
    	}
    }
    

    class Person
    {
    	private String name;
    	private int age;
    
    	Person(String name,int age)
    	{
    		this.name=name;
    		this.age=age;
    	}
    	public String getName()
    	{
    		return name;
    	}
    	public String setName()
    	{
    		this.name=name;
    	}
    }
    
    class Student extends Person
    {
    	Student (String name,int age)
    	{
    		super(name,age);
    	}
    }


    5,抽象类一定是个父类吗?

    是的。因为需要子类覆盖其方法后才可以对子类实例化

    展开全文
  • 主要介绍了java 中接口和抽象类的区别与对比的相关资料,这里详细说明他们之家的区别,需要的朋友可以参考下
  • 主要介绍了Java 抽象类与接口的对比,帮助大家更好的理解学习Java,感兴趣的朋友可以了解下
  • 1.抽象类和接口定义实现的书写规范 2.抽象类和接口的区别 3.抽象类形象化理解 1.抽象类和接口定义实现的书写规范: 抽象类 定义: 抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取...

    抽象类和接口的区别:

    文章内容结构划分:

    1.抽象类和接口定义和实现的书写规范

    2.抽象类和接口的区别

    3.抽象类接口理解案例

    1.抽象类和接口定义和实现的书写规范:

    抽象类

    定义:
    抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来(比如:宝马、奔驰都属于汽车,汽车是抽象出来的概念)。
    注意:Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。

    接口
    接口时抽象方法与全局常量的集合。子类实现接口时,用关键字implements实现。

    抽象类和接口定义和实现的书写规范:

    抽象类

    抽象类定义:

    [访问修饰符] abstract class 类名{
    	[访问修饰符] abstract <返回值类型> 方法名([参数列表]);
    }
    

    抽象类实现:

    [访问修饰符] class 类名 extends 抽象类类名 {
    	//  抽象方法的实现,可以不用全部实现
    }
    

    接口
    接口的定义:

     [访问修饰符] interface 接口名{
     		[public] [static] [final] 常量;
     		[访问修饰符] <访问修饰符> 方法名(形参列表);
     }
    

    接口的实现:

    [修饰符] class <类名> [implements 接口列表,接口列表,,,]{
    	//  注意:所有未实现的方法均都实现
    }
    

    抽象类和接口的区别:

    1. 抽象类和接口都不能被实例化,但是接口可以实现之后,利用多态的特性实例化。如IUserDao userDao = new UserDaoImpl();
    2. JAVA 中不支持多继承,但接口的引入实现了多继承,即一个类可以实现多个接口(继承只能继承一个抽象类)
    3. 抽象类用abstract修饰,接口用ingterface修饰;extends 继承类;implements 实现接口;类和接口是不同的:类里是有程序实现的;而接口无程序实现,只可以预定义方法。
    4. 抽象类里可以包含已经实现的方法,只要包含一个抽象或者多个抽象的方法即可,但是接口中的全部都是未实现的方法。
    5. 抽象类表示的是,这个对象是什么;接口表示的是,这个对象能做什么(eat,run…)。
    6. 抽象类的重中之重的作用就是提高代码的重用性;接口的作用是实现了多继承;

    3.抽象类接口理解案例:

    案例一:

    你看过周星驰的电影没,就是那个去水果店,揪住老板说要一斤水果!老板问他你要什么水果,他说他就要水果!这个水果就是抽象类。

    水果是抽象的,但苹果、西瓜是抽象类的一个具体的水果,他们就是水果实例化的结果。
    案例二:

    抽象类的一个功能–不能被实例化。也就是不能被new.

    举个生活中的例子 宠物类下面有狗狗类,猫猫类来继承它。 一般的情况我们有这两种方法 宠物类 a =new 狗狗类();
    翻译就是。我有一只宠物,这只宠物是狗狗,它叫a 狗狗类a=new 狗狗类(); 我有一只狗狗,它叫a.
    这个不区别。关键的是,楼主来看下面的代码 宠物类 a=new 宠物类();
    虽然我们经常说,我有一只宠物。(但是请注意,实际上没有一种叫宠物有东西。宠物是个泛泛的概念,我们现实生活中有狗和猫)
    所以抽象类不能被new的功能。是为了符合事实意义。 同时也是类的一种高度概括。 我们说类是对象的抽象。抽象类又是各种各校类的抽象

    案例三:

    比如说人和狗都属于动物,这里“动物”是抽象类,“人”和“狗”是“动物”的实体子类,动物都会“走路”,“走路”这个方法在“动物”类中没有具体实现(抽象方法),因为不同的动物表现出来的“走路”方法是不同的,比如这个例子中,“人”是二条腿走路,“狗”是四条腿走路,所以这种具体差异就需要在子类中重写,否则“人”和“狗”就没区别了。

    友情链接:
    CDSN:抽象类的概念和作用
    百度知道:java里抽象类到底有什么用?
    百度知道:抽象类到底有什么用呀
    百度百科:implements
    百度百科:extends

    展开全文
  • 接口和抽象类

    2011-12-03 07:54:21
    接口和抽象类的各自讲解,以及其区别。包含c#java中的接口和抽象类对比
  • 抽象类和接口的关系对比

    千次阅读 2007-04-06 11:42:00
    抽象类抽象类主要用来定义一些抽象的属性方法,留待子类根据自己的情况实现这些属性方法抽象类不能生成实例,即不能new一个抽象类的实例抽象类可以被继承,除非继承该抽象类的子类仍声明为抽象的,否则就必须...

    抽象类
    抽象类主要用来定义一些抽象的属性和方法,留待子类根据自己的情况实现这些属性和方法
    抽象类不能生成实例,即不能new一个抽象类的实例
    抽象类可以被继承,除非继承该抽象类的子类仍声明为抽象的,否则就必须实现这个抽象类的所有抽象属性和方法
    一个类只能继承一个抽象类,如果需要实现多个类的抽象方法,必须使用接口
    子类与抽象类是is关系
    接口
    接口主要用来定义一些抽象的属性和方法,留待实现类根据自己的情况实现这些属性和方法
    接口不能生成实力,即不能new一个接口的实例
    抽象类可以被实现,除非实现该接口的类声明为抽象的,否则就必须实现这个接口的所有抽象属性和方法
    一个类可以实现多个接口
    实现类与接口是has关系 

    说明:这里面有些地方可能需要改动,具体请参见本人的另一篇文章《接口(interface)原来是可以被继承(extends)的》

    展开全文
  • 抽象类和接口的区别

    万次阅读 多人点赞 2018-11-21 19:55:11
    抽象类的抽象成员可被子类部分实现,接口的成员需要实现类完全实现,一个类只能继承一个抽象类,但可实现多个接口等等。 如何区分 类是对对象的抽象,抽象类是对类的抽象; 接口是对行为的抽象。 若行为跨越不同...

    比较

    从定义上看

    抽象类是包含抽象方法的类;
    接口是抽象方法和全局变量的集合。

    从组成上看

    抽象类由构造方法、抽象方法、普通方法、常量和变量构成;
    接口由常量、抽象方法构成,在 JDK 1.8 以后,接口里可以有静态方法和方法体。

    从使用上看

    子类继承抽象类(extends);
    子类实现接口(implements)。

    从关系上看

    抽象类可以实现多个接口;
    接口不能继承抽象类,但是允许继承多个接口。

    从局限上看

    抽象类有单继承的局限;
    接口没有单继承的限制。

    区分

    1. 类是对对象的抽象,抽象类是对类的抽象;

      接口是对行为(方法)的抽象。

    2. 若行为(方法)跨越不同类的对象,可使用接口;

      对于一些相似的类对象,用继承抽象类。

    3. 抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类;

      接口是根本不知子类的存在,方法如何实现还不确认,预先定义。

    思考

    Q:Java 中没有多继承,用了接口以后,解决了此问题。如果以后 Java 可以多继承了,接口还有意义吗?

    A:继承是描述父子关系的,而接口是用来标识该类的对象有某种属性的。比如:苹果和鸡都可以吃,但是苹果是水果类,猫是动物类,这个时候为了让苹果和鸡都可以吃的话,可以实现 eatable 接口。所以说,接口比类带来更多的灵活性。

    推荐阅读:Java 中的接口有什么作用?

    同类博客

    面向对象基础

    抽象类与接口的异同

    抽象类与抽象方法

    展开全文
  • Java中接口和抽象类对比

    千次阅读 2020-07-01 08:24:17
    1:抽象类 抽象类也是类的一种,声明方式与声明类相似,在声明之前添加abstract public abstarct class test{ absctract void prectice(); } 声明时,可以不添加权限关键字,或者添加只能是public或者protect,...
  • 抽象类”到底抽不抽象?实例对比一看便知!

    千次阅读 多人点赞 2020-06-14 22:06:07
    接下来,我们通过抽象类在JavaC#中的应用对比分析一下! 什么是抽象类? 首先,什么是抽象类? 其实在进行开发时,我们可以假定抽象类是一种对内容的约束,打个比方来说,平行四边形类应该具有的特征.
  • Java 抽象类和接口

    千次阅读 2018-12-04 21:45:27
    抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法构造方法的访问方式普通类一样。 由于抽象类不能实例化对象,但可以定义一个引用。抽象类必须被继承,才能被使用。 父类包含了子类...
  • 【面向对象】抽象类和接口的对比学习

    千次阅读 热门讨论 2016-02-22 20:35:42
    小动物的元宵喜乐会,有趣有料带你了解抽象类和接口~
  • 聊聊~接口和抽象类

    千次阅读 2019-08-25 10:15:42
    先介绍一下抽象类和接口的概念 一、抽象类:  抽象类是特殊的类,只是不能实例化,除此之外,具有类的其他特性。并且抽象类可以包含抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,...
  • 实用抽象类和接口的区别

    千次阅读 2016-09-29 20:39:26
    抽象类和接口又什么好处从这个问题我们可以衍生出两个问题:1.为什么要用抽象类?2. 为什么要使用接口?企业单位在面试的时候经常会问到!答案综合考虑以下方面:1:强调不但应该具有什么能力,而且应该具有什么特性...
  • python 如何定义抽象类和抽象方法

    千次阅读 2020-01-10 13:00:05
    文章目录(一)python 如何定义抽象类和抽象方法(二)python中的多态(三)类的组合 (一)python 如何定义抽象类和抽象方法 在python中类 通过继承metaclass = ABCmeta类来创建抽象类抽象类是包含抽象方法的类,...
  • 抽象类和接口有什么区别

    万次阅读 多人点赞 2018-08-25 20:36:35
    抽象类和接口的对比 参数 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现 实现 子类使用 extends 关键字来继承抽象类。如果...
  • 抽象类和抽象方法的特点如下。 1.抽象类和抽象方法都通过abstract关键字来修饰 2.抽象类不能实例化。抽象类中可以没有,有一个或多个抽象方法,甚至全部方法都可以是抽象方法。 3.抽象方法只有方法声明,没有方法...
  • 本文主要介绍java 的接口和抽象类,对接口和抽象类进行介绍对比,深入理解,有需要的小伙伴可以参考下
  • 【JAVA】抽象类和接口的联系与区别

    万次阅读 2018-08-15 20:35:32
    抽象类和接口的联系与区别 抽象类与接口一直是面试中问到的一道比较基础的问题,弄懂它们之间的联系与区别,将会提升我们面向对象编程的功底。 联系 (1)抽象类和接口都不能被实例化。如果要实例化,则抽象...
  • Php 中接口与抽象类对比

    千次阅读 2019-03-10 10:59:22
    三、接口中的成员访问权限都必须是public,抽象类中最低的权限protected。 四、抽象类只要有一个方法是抽象方法,即可使用abstract关键字来修饰声明。接口中所有方法都是抽象方法,即可使用interface关键字来声明...
  • 抽象类和接口的相同点: 1.都不能被实例化 2.接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能被实例化 不同点: 1.接口只有定义,其方法不能再接口中实现,只有实现接口的类才能实现接口中定义...
  • Java基础之抽象类与接口

    万次阅读 2019-11-04 13:13:03
    例如我们经常看到许多公司的项目中大量service实际上没有多种实现,却将Service分为了service抽象类和implement实现类两个文件。这是一件需要权衡利弊的问题,而不是应该遵从大流。 先一起来看一下这些抽象的方法与...
  • Typescript中抽象类与接口详细对比与应用场景介绍 抽象类当做父类,被继承。且抽象类的派生类的构造函数中必须调用super();接口可以当做“子类”继承其他类 抽象类派生: abstract class Human { constructor ...
  • 很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。 本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。...
  • 抽象类 接口 1 定义的关键字不同 Abstract Interface 2 组成 抽象方法、普通方法、构造方法、常量、变量、全局常量、全局变量 全局常量、抽象方法 3...
  • php抽象类和接口的区别

    千次阅读 2020-02-27 17:35:34
    抽象类和接口的关系:抽象类是一种特殊的类,接口是一种特殊的抽象类 抽象类 什么是抽象方法:如果一个类中的方法,没有方法体的方法就是抽象方法(就是一个方法没有使用{},而直接使用分号结束) 例:abstract ...
  • 描述了C#中两个重要的知识点,接口和抽象类,总结了它们的优点缺点,并且进行了对比,介绍了什么情况下用接口什么情况下用抽象类
  • java 抽象类和接口的区别

    千次阅读 2018-01-23 16:29:59
    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。...
  • 浅析Java抽象类和接口的比较

    千次阅读 2014-08-01 14:47:11
    [摘要] abstract classinterface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。     abstract classinterface是Java语言中对于抽象类...
  • 文章目录对比 抽象类 接口代码总结 对比 抽象类 接口 代码 总结 抽象类 门(开门、关门) 接口:门铃(叮咚)、猫眼(看人) 对于这种附件形式的类,我们就可以用接口来表示。 注意:单继承多实现 有人会问...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,020
精华内容 48,008
关键字:

对比抽象类和一般类