java抽象 继承_Java 抽象和接口以及继承的详解

Java 抽象和接口以及继承的详解

有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化。例如:有一个父类“ 水果(Fruit)”,它有几个子类“苹果(Apple)”、“橘子(Orange)”、“香蕉(Banana)”等。水果在这里仅仅只是作为一个分类,显然水果的实例没有什么意义(就好像一个人如果告诉你他买了一些水果但是却不告诉你是苹果还是橘子,你很难想象他到底买的是什么。)。而水果类又要能被子类化,这就要求我们使用抽象类(abstract class)来解决这个问题。

在java中,通过在class关键字前增加abstract修饰符,就可以将一个类定义成抽象类。抽象类不能被实例化。例如:

定义抽象类水果(Fruit)

public abstract class Fruit {

……

}

如果我们试图用以下语句来获得一个实例,将无法编译成功。

Fruit fruit = new Fruit();

而我们仍然可以构造水果类的子类,如:

子类“苹果(Apple)”

public class Apple extends Fruit {

……

}

子类“橘子(Orange)”

public class Orange extends Fruit {

……

}

这样就达到我们的目的了。

抽象类除了能象普通类一样可以拥有一般的属性和方法,也可以拥有抽象方法(

相关文档:

java实现的经典递归算法三例

一、写作此文的原因:

学过程序设计的朋友都知道,存在自调用的算法称作递归算法。 递归往往能给我们带来非常简洁非常直观的代码形势,从而使我们的编码大大简化,然而递归的思维确实很我们的常规思维相逆的,我们通常都是从上而下的思维问题, 而递归趋势从下往上的进行思维,正由于此� ......

贴子中部分源代码摘自csdn的一篇帖子, 参考了他们的理解,说说自己的一些见解:

//源代码:

class A {

public String show(D obj){

return ("A and D");

......

由于常见的单例模式,饿汉式单例和懒汉式单例,构造方法都私有了,因此不能被继承.

最近在开发中遇到问题了,恰好需要继承单例类.找资料才找到了这个解决办法---登记式单例.

登记式单例类是为了克服饿汉式单例类及懒汉式单例类均不可继承的缺点而设计的。当单例类需要被继承时适用.

代码清单3:登记式单例类

import java.u ......

package com.tiantian;

import java.util.*;

public class JAVAContainer {

public static void main(String[] args) throws Exception {

// ArrayList

{

ArrayList arraylist = new ArrayList();

arraylist.add(0, "end");//指定索引加入值

// 需注意的是,如果现有2个值,我尤胨饕?的那么就会出现异常

f ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值