Java是一个面向对象的语言,java面向对象一般有三大特征:封装、继承、多态。

封装:就是把一些属性和方法封装到一个类里。

继承:就如子类继承父类的一些属性和方法。

多态:就如一个父类有多个不同特色的子类。

这里我就不多讲解,下面我主要说明一个继承。继承是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 继承基本类、抽象类、接口相关推荐

  1. Java 继承 与 抽象类

    Java 继承 与 抽象类 继承 抽象类 继承 1.一个类 从另一个类中派生而来,就是继承. 2.继承也是面向对象语言的三大特征之一. 面向对象的语言都具有三大特征,分别是 封装,继承,多态. 3.什 ...

  2. Java实验三 Java继承、抽象类与接口(13题)

    文章目录: 一:基本问题 二:说明下面说法是否正确 三:编写一个Java应用程序.设计一个汽车类Vehicle,包含的成员属性有:车轮个数wheels和车重weight.小车类Car是Vehicle的 ...

  3. 继承 多态 抽象类 接口

    面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...

  4. java 多态 接口_从零开始的Java日常: 多态,抽象类,接口

    欢迎关注微博:@小白程序员的日常 欢迎关注微博超话:#小白程序员的日常# 本人目前在自学java,会不间断更新java知识 同为小白或者有大佬可以一起探讨一下 一.多态 1.什么是多态 同一个对象,在 ...

  5. java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口

    数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...

  6. java基础-类-抽象类-接口(自学笔记)

    一.类 class 定义:具有相同属性(特性)和方法(行为)的一类事物 的抽象的总称 例如:人类,动物,车,屌丝类.是一种类别,世界上所有的事物都可以分类,在计算机中java都能进行对应和体现 类的三 ...

  7. java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方法吗

    一.简单总结,需要重写的有 普通类继承抽象类,重写所有抽象类方法:(不包括普通方法) 普通类继承接口,重写所有接口方法.(不包括default关键字修饰的方法) 详解见下: 普通类继承,并非一定要重写 ...

  8. 腾讯架构师讲解Java接口的继承与抽象类

    在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体.interface为类提供了接口规范. 在继承中,我们为了提高程序的可复用性,引入的继承机制.当时的 ...

  9. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

最新文章

  1. 300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达|CVPR2020...
  2. 什么叫组网_5G NSA和SA是什么?有什么不同?
  3. Java Socket传输数据的文件系统介绍
  4. Vue-路由模式 hash 和 history
  5. 网站关键词如何布局更有利于关键词排名提升?
  6. 加密算法、DES、IDEA、RSA、DSA
  7. python最大堆_用Python实现最大堆
  8. Paper:GPT-3《 Language Models are Few-Shot Learners》的翻译与解读
  9. ibm系列文章 -- Windows 到 Linux 之旅
  10. .Net Core开发日志——Peachpie
  11. 遍历Map keySet和entrySet
  12. 双电阻差分电流采样_小小的采样电阻,还真有点门道!
  13. Spring Boot 集成 WebSocket,轻松实现信息推送!
  14. 【Pytorch】scatter函数详解
  15. 数学模型——人口增长模型(基于python)
  16. IDL调用ENVI-FLAASH大气校正异常退出解决办法
  17. 宾州州立大学帕克分校计算机科学,宾州州立大学帕克分校排名一览
  18. C语言程序设计学习笔记:P1-程序设计与C语言
  19. 【物理应用】大气辐射和透射率模型及太阳和月亮模型(Matlab代码实现)
  20. 微信小程序—刷脸实名认证

热门文章

  1. Python读取PDF内容
  2. IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
  3. SET ROWCOUNT
  4. careercup-中等难度 17.5
  5. 使用JTextArea示例
  6. 自定义Title(可以实现类似于携程网上价格的显示方式)
  7. .NET (C#) Internals: ASP.NET 应用程序与页面生命周期——吴秦(Tyler)
  8. Jenkins 使用 Kubernetes Plugin 完成持续构建与发布
  9. MySQL · 最佳实践 · 如何索引JSON字段
  10. DockOne微信分享(一一二):Flannel中vxlan backend的原理和实现