精华内容
下载资源
问答
  • 那么抽象类有什么用呢?比如在父类中定义了吃水果蔬菜,那么具体是吃什么呢?猴子可能喜欢吃香蕉,兔子可能喜欢吃萝卜。这都有一个具体点,就是吃东西,但是具体吃什么父类是不能把这种单独的放到“共有的”这个里面...

    在C++中,如果一个类中含有纯虚析构,那么这个类就是抽象类。

    定义一个纯虚析构

    virtual 修饰的函数为虚析构,虚析构=0则为纯虚析构

    那么抽象类有什么用呢?比如在父类中定义了吃水果蔬菜,那么具体是吃什么呢?猴子可能喜欢吃香蕉,兔子可能喜欢吃萝卜。这都有一个具体点,就是吃东西,但是具体吃什么父类是不能把这种单独的放到“共有的”这个里面,具体吃什么由子类决定。这时候父类设置一个抽象类。表明这个功能没有实现,交给子类自己实现。

    展开全文
  • 抽象类有什么用

    2013-04-19 14:31:15
    那么抽象类到底有什么用呢?我们可以举一个例子。  抽象类是对象的抽象,例如现在有狗狗,小鸟、鱼等动物,我们需要对它每一项进行分析,它们都有的动作为吃、睡,都有的属性为眼睛,有了抽象类,我们就不用一条一...

         抽象类虽然不能被实例化,但是他可以被继承。那么抽象类到底有什么用呢?我们可以举一个例子。

         抽象类是对象的抽象,例如现在有狗狗,小鸟、鱼等动物,我们需要对它每一项进行分析,它们都有的动作为吃、睡,都有的属性为眼睛,有了抽象类,我们就不用一条一条列,(因为继承父类【抽象类】,子类必须实现父类所有的抽象方法)直接可以抽象到动物上,动物有的动作为吃、睡,都有的属性为眼睛,这样每个动物都有了这些属性和方法,只是具体实现的时候有不同罢了。其实,抽象类有点像接口

    展开全文
  • 这个网站需要一定的技术去访问,但是为什么说他好呢,因为他号称全球最大的高质量创作型内容平台。很多知识小编都是在这里学习到的,也了解到国外程序员的一些习惯,其实和我们国内的也差不多,但是通过英文说出来,...

    今天安利一个网站,其实很多朋友应该早就知道了,我之前ARTS打卡,英文文档的 很多出处就来自于这个网站,叫 「Medium」

    这个网站需要一定的技术去访问,但是为什么说他好呢,因为他号称全球最大的高质量创作型内容平台。很多知识小编都是在这里学习到的,也了解到国外程序员的一些习惯,其实和我们国内的也差不多,但是通过英文说出来,感觉还真有那么点不一样吧。

    小编不才,今天尝试下翻译这里的好文,期待和你的交流。

    标题:「Java Abstract Class What Is It Good For?」

    文章来源:https://medium.com/swlh/java-abstract-class-what-is-it-good-for-880cf0117648

    作者:Tome Henricksen

    发布时间:2019-10-15

    Java抽象类使许多Java开发人员望而却步。让我们了解一下它对我们有什么作用以及如何使用。

    抽象主义:无原则者出售的未经惩罚的产品。Al Capp

    我猜您听说过称为ADD或注意力缺陷障碍的疾病。在最近的巴黎之旅中,我儿子和我发现我们正遭受另一个名字相似的疾病的困扰。缺乏艺术障碍。

    我们一起看看绘画和雕塑,发现它们毫无生气。我女儿在d’Orsay享受美食的地方,我们在寻找美食广场。在这里,我们享用了浓缩咖啡和鲜榨橙汁。

    Java抽象类

    Java具有不完整的抽象类。它们不能像常规类那样实现,必须对抽象类进行子类化才能使用。在这些类中,我们可以声明抽象方法。抽象类类似于Java中的接口。让我们更深入地进行比较。

    比较

    像接口一样,抽象类无法实例化。如果接口仅包含方法签名,则抽象类可以包含方法主体。抽象类可以声明非静态和final字段。

    Java教程在使用抽象类时提供了一些很好的指导。原文如下(这里不进行翻译)When we “want to share code among several closely related classes” or “expect that classes that extend your abstract class have many common methods or fields”. Interfaces should be used when “expect that unrelated classes would implement your interface” or “want to specify the behavior of a particular data type”.

    Java抽象类示例

    像所有优秀的编码员一样,让我们着手编写一些代码。首先,我们可以看一个示例抽象类来入门。

    package com.myitcareercoach;
    
    public abstract class Battery {
    	int volt;
    	int amps;
    	void charge(int chargingTime) {
    		// shared code
    	}
    	
    	abstract boolean fullyCharged();
    	
    	abstract boolean isTooHot();
    	
    }
    

    这个Battery 抽象类有一个实现的方法和两个抽象方法。并且还定义了两个字段。

    package com.myitcareercoach;
    
    public class ComputerBattery extends Battery {
    
    	@Override
    	boolean fullyCharged() {
    		// TODO Add some code here!
    		return false;
    	}
    
    	@Override
    	boolean isTooHot() {
    		// TODO Add some code here!
    		return false;
    	}
    
    }
    

    ComputerBattery是一个具体的Java类。因为它继承了Battery类,所以它需要实现Battery定义的两种抽象方法

    抽象和接口?

    抽象类甚至可以实现接口。这似乎是将意大利面和土豆泥混合在一起,但是,这是合法的!(老外就是幽默啊,哈哈

    public interface Student {
          
           public void setSchedule();
          
           public void registerForClass(String className);
    
    }
    
    

    让我们采用Student 接口并将其混合在抽象类中

    public abstract class ProbationaryStudent implements Student {
    
    	@Override
    	public void setSchedule() {
    		// implemented method
    	}
    
    	// not going to override registerForClass() method
    
    }
    

    在我们的ProbationaryStudent中,我们不需要实现Student接口中的所有方法。因为该类被标记为抽象,所以这种情况是可能的。

    Main?

    您是否认为抽象方法中的main方法可以运行?

    public abstract class DoesItRun {
    
    	public static void main(String[] args) {
    		System.out.println("Does it run?");
    	}
    
    }
    

    起先我也不认为会,但是实际上,它确实可以运行。我建议您自己尝试一下。如您所见,抽象类在Java中占有一席之地。与interface(接口)相似,但使用方式不同。

    您在哪里使用过Java接口?

    结尾

    在这里,这篇翻译就结束了。这是篇Java的基础入门级文章,但是也体现出了Java abstract(抽象类)的重要性,以及简单的入门。

    比如abstract(抽象类)是需要用继承的方式来的,并且定义的每个抽象方法在子类中都需要实现;interface(接口)是用来实现的,子类中并不需要实现全部的方法。

    还有一个小彩蛋,在抽象类中,也是能执行main函数的哦。

    这次,小编小试牛刀,后续会翻译一些我认为更好的文章出来,和大家一起进步,一起加油。喜欢的话,给点鼓励噢~

    推荐阅读:

    Leetcode算法【34在排序数组中查找元素】

    写了很久,这是一份适合普通大众/科班/非科班的『学习路线』

    长久养成的打卡习惯可千万不能丢呀

    Java 中的 final、finally、finalize 有什么不同?

    求求你别再“从入门到放弃了”,贵在坚持

    「奔跑吧攻城狮」感谢大家的关注,fighting

    展开全文
  • 抽象类: 被abstract修饰的类 * 抽象方法: 被abstract修饰的方法 * 可以没有方法体 * 必须在抽象类中 * * 注意: * 1.抽象类不能被实例化|不能创建对象 * 2.抽象方法要存在与抽象类中,抽象方法必须被重写 * 3.抽象类...

    抽象类:  被abstract修饰的类

     * 抽象方法: 被abstract修饰的方法
     *     可以没有方法体
     *     必须在抽象类中
     * 
     * 注意:
     *     1.抽象类不能被实例化|不能创建对象
     *     2.抽象方法要存在与抽象类中,抽象方法必须被重写
     *     3.抽象类的使用:
     *         具体子类: 重写所有的抽象方法+ 按需新增(普通方法)       最终的状态是没有抽象方法了
     *         抽象子类: 按需重写抽象方法+ 按需新增                           最终的状态是:还有抽象方法
     *  4.一个抽象方法一旦被子类重写过,子类的子类就不需要再次被重写啦
     *  5.抽象类中可以存在普通方法,可以存在抽象方法
     *  6.abstract 不能和private,final,static,native一起使用

    抽象类:

    public abstract class Develop {
    	public abstract void work();
    	public abstract void sleep();
    }

    抽象类的使用: 

    //具体的子类:可以创建对象
    public class Java extends Develop{
        public static void main(String[] args) {
    		//Develop d=new Develop();
    		
    		//具体子类对象
    		Java java=new Java();
    		java.work();
    		java.sleep();
    		java.haha();
        }
    
    	@Override
    	public void work() {
    		System.out.println("做服务器端开发");
    	}
    
    	@Override
    	public void sleep() {
    		System.out.println("边敲代码边休息...");
    	}
    	
    	public void haha() {
    		System.out.println("程序员节,java开发程序员可以放假三天...");
    	}
    
    }

     

    展开全文
  • Java接口和抽象类有什么区别,哪些时候接口,哪些时候抽象类? 2013-01-05 17:16:09|分类:JAVA|标签:java|举报|字号订阅 下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造...
  • 那么问题来了,为什么抽象类不能被实例化,因为抽象类中的抽象方法只有名称,没有具体实现方法,无法被实例化,抽象类不能final来修饰, 2.“抽象方法”:属于一种不完整的方法,只含有一个声明,没有方法主体。...
  • 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 抽象...
  • 1.抽象类可以构造方法,接口中不能构造方法。 2.抽象类中可以普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能非抽象的普通方法。 4. ...
  • 为什么使用抽象类有什么好处?

    千次阅读 多人点赞 2019-04-27 18:11:05
    其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是...
  • 抽象类和抽象方法有什么用呢?当初sun公司为什么要设计抽象类和抽象方法呢?当你在做车的系统设计时,当你设计车这个通用类时,假如你确认别人实例化车这个通用类没有意义时(不知道是bike还是豪华轿车),你就坚决的...
  • 其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是...
  • 你想要继承抽象类的那些类有一些公共方法或属性抑或是有修改protected或private属性的权限。这时你也可以考虑使用抽象类。 你想要声明非静态或者是非最终执行的属性。你可以获得并且修改这些属性所属的对象的状态...
  • 其实不是说抽象类有什么用,一般类确实也能满足应用,但是现实中确实有些父类中的方法确实没有必要写,因为各个子类中的这个方法肯定会有不同,所以没有必要再父类里写。当然你也可以把抽象类都写成非抽象类,但是...
  • 什么时候使用抽象类和接口?...所以在写f16飞行员类的时候,你需要写关于飞行员的公共类的时候你用抽象类,当你需要写关于f16飞行员本类不属于共有的属性特性的时候(共有的如都需要训练,都一个隶属的单
  • 什么时候用抽象类,什么时候接口“接口是完全抽象的成员集合,它的成员都无法在接口定义时实现,我们可以将它看作是为操作定义合同,接口的实现完全留给开发者去做。它们之间的区别,如果认真分析,还是不少的:...
  • 如果行为跨越不同类的对象,可使用接口,如果对现实类对象、可以用抽象类抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类。 接口是根本不知道子类的存在,方法如何实现还不确认,只是预先定义...
  • 那么就可以使用抽象类定义基类,即使abstract关键字声明Class并且abstract声明抽象类中方法(抽象类中可以抽象方法也可以实方法-》这里的实方法指的是非虚方法,abstract可以看做隐式的虚方法 ) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,171
精华内容 1,268
关键字:

抽象类有什么用