当前位置:  编程技术>java/j2ee

JAVA 继承基本类、抽象类、接口介绍

    来源: 互联网  发布时间:2014-10-22

    本文导语:  封装:就是把一些属性和方法封装到一个类里。 继承:就如子类继承父类的一些属性和方法。 多态:就如一个父类有多个不同特色的子类。 这里我就不多讲解,下面我主要说明一个继承。继承是OOP(面向对象)的一个特色,...

封装:就是把一些属性和方法封装到一个类里。
继承:就如子类继承父类的一些属性和方法。
多态:就如一个父类有多个不同特色的子类。
这里我就不多讲解,下面我主要说明一个继承。继承是OOP(面向对象)的一个特色,java只支持单继承(如果继承两个有同样方法的父类,那么就不知道继承到那个父类的,所以java只支持单继承)。继承是java的一个特色,我们用的所以类都继承Objict类,所以就要Object类的方法,如toString()、getClass()、wait()……所以我们建立的类都有父类。

Java中一般有三种类:

基本类:也就是一般的类(一般所说的类就是基本类),是对象的模板,是属性和方法的集合。可以继承其他基本类、抽象类、实现接口。
抽象类:有抽象方法的类(抽象方法就是该方法必须由继承来实现,本身只定义,不实现)。抽象类可以有一个或多个抽象方法,他是基本类和接口类的过度。
接口类:一般叫做接口,该类中的所有方法都是抽象方法,该类的方法本身只定义不实现。
抽象类和接口一个由【abstract class + 抽象类名】一个由【interface +接口名】定义,接口中的所以方法都是抽象方法,而抽象类有部分方法是自身实现了的,一些只定义不实现。

基本类的定义:

代码如下:

public class Fruit {
public void price() {
System.out.println("水果价格");
}
public void weight() {
System.out.println("水果重量");
}
}

抽象类的定义:
代码如下:

public abstract class Fruit {
public void price() {
System.out.println("水果价格");
}
public abstract void weight();
}

接口类的定义:
代码如下:

public interface Fruit {
public void price();
public void weight() ;
}

从上面我们可以看出接口就是抽象类的升级版,由于该类的方法全是抽象方法,所以把abstract换成interface。而接口的方法必须由子类才能实现。
继承

继承基本类,可以继承父类的方法,也可以从些,也可以扩充。下面是实现接口基本类的类:
代码如下:

public class Apple extends Fruit {

}

该类中就有Fruit基本类中的两个方法:price()和weight();

继承抽象类,必须实现抽象类的抽象方法,可以修改父类的方法,和添加方法。下面是继承抽象类的类:
代码如下:

public class Apple extends Fruit {
@Override
public void weight() {
System.out.println("水果重量");
}
}

该类继承类Fruit的price()方法,同时实现了Fruit抽象类的weight()方法。
继承接口类(也就实现接口),必须实现接口类的所有的抽象类和添加了。下面是继承接口的类:

代码如下:

public class Aple implements Fruit {
@Override
public void price() {
System.out.println("水果价格");
}
@Override
public void weight() {
System.out.println("水果重量");
}
}


该类是实现Fruit接口的所以抽象方法。

Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现)
如:public class Apple extends Fruit implements Fruit1, Fruit2{}
一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。其实继承是很简单的,可以就是没有弄清这两个关键字,当我们弄清楚也就是比较简单的。

接口也可以继承接口如:public interface Fruit1 extends Fruit {}这是接口中的多重继承,同理抽象类和基本类也同理。如果我们把基本类添加final修饰,也就定义该类不被继承,该类不能作为父类。同时基本类的方法可以用public 、private、proptected来修饰方法,用final来阻止继承该方法。

这里只是自己的理解,有些地方时用词不当的,只是觉得这样用词更好的理解,请大家谅解。有些地方由于不是这里的重点,没有讲清楚,希望大家通过其他方式了解。

    
 
 

您可能感兴趣的文章:

  • java没有多继承,用接口来实现多继承的功能,但哪里体现了多继承啊?我对接口的概念一直弄不清楚,请大家帮忙!
  • java继承的问题
  • xx.java继承yy.class,编译xx.java为xx.class时应怎样书写?(谢谢)
  • 关于java的访问控制和继承,这段话怎么理解?
  • 求java.io包中的类的继承关系!
  • 请教大家!!!java如何实现多重继承?接口该如何使用?份数可以再加,只要我明白了
  • 一个JAVA继承的问题(Thinking in JAVA里的一个例子)
  • linux iis7站长之家
  • java里有没有象vc里的sleep(1000)一样的功能的东西 当然不是实现Runnable不是继承线程类
  • 有关Java构造函数的问题之三——继承性
  • 有两个:1.class与2.java,2.java继承1.class类,要把2.java编译成2.class给如何书写!
  • 在JAVA中如何用接口实现C++的多重继承呀?帮帮忙!
  • 提一个java继承方面的问题
  • java中 IO 常用IO操作类继承结构分析
  • 那位大虾知道javaScript的window对象是从java的什么类里继承来的?可否实现如下功能
  • 《thinking in java》一个有关继承的程序不明白,请讲一讲,谢谢
  • Java基础教程之接口的继承与抽象类
  • JAVA中阻止类的继承(官方和非官方)
  • java教程之java继承示例详解
  • 基于java中子类的继承性的应用介绍
  • java命名空间javax.script接口invocable的类成员方法: getinterface定义及介绍
  • java的API中有没有既实现了Map接口又实现了List接口的类?
  • java命名空间javax.lang.model.element接口typeelement的类成员方法: getinterfaces定义及介绍
  • ImageMagick的Java 接口 im4java
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getmanagementspecversion定义及介绍
  • 【请教】java中接口问题
  • java命名空间java.beans.beancontext接口beancontextproxy的类成员方法: getbeancontextproxy定义及介绍
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • java命名空间javax.print接口uriexception的类成员方法: getreason定义及介绍
  • 在java中接口与抽象类在使用中有多大的区别
  • java命名空间javax.swing.text接口caret的类成员方法: install定义及介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 怎么没有讨论XML的?哪位高手介绍介绍在JAVA中怎么使用XML?
  • java命名空间java.beans接口propertyeditor的类成员方法: getvalue定义及介绍
  • 急!!谁了解macintosh?能不能给我介绍介绍?是不是跟linux差不多?使用开发工具JDK,这是不是不JAVA?
  • java命名空间java.awt类container的类成员方法: getlayout定义及介绍
  • 各位高手,我初学java,以前是学VB的,请介绍一下学习java的经验
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请大家介绍一下java BEAN的入门读物吧
  • java命名空间java.beans类defaultpersistencedelegate的类成员方法: defaultpersistencedelegate定义及介绍
  • 能否介绍几本Java的好书
  • java命名空间java.text类decimalformat的类成员方法: topattern定义及介绍
  • 介绍本学 JAVA的好书怎么样?请注明出版社
  • java命名空间java.sql类types的类成员方法: null定义及介绍
  • 介绍一些学习JAVA SWING 方面的好书.
  • java命名空间java.awt类awtevent的类成员方法: id定义及介绍
  • 哪里有Java 2D Graphics方面的介绍?
  • java命名空间java.text类choiceformat的类成员方法: choiceformat定义及介绍
  • 谁能告诉我哪里能找到java包内部类及方法使用介绍
  • java命名空间java.sql类driverpropertyinfo的类成员方法: value定义及介绍
  • 请问那里有java控制图形的介绍和代码?
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: isrepresentationclassinputstream定义及介绍
  • 介绍一本Java好书
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3