JAVA 继承基本类、抽象类、接口
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 继承基本类、抽象类、接口相关推荐
- Java 继承 与 抽象类
Java 继承 与 抽象类 继承 抽象类 继承 1.一个类 从另一个类中派生而来,就是继承. 2.继承也是面向对象语言的三大特征之一. 面向对象的语言都具有三大特征,分别是 封装,继承,多态. 3.什 ...
- Java实验三 Java继承、抽象类与接口(13题)
文章目录: 一:基本问题 二:说明下面说法是否正确 三:编写一个Java应用程序.设计一个汽车类Vehicle,包含的成员属性有:车轮个数wheels和车重weight.小车类Car是Vehicle的 ...
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- java 多态 接口_从零开始的Java日常: 多态,抽象类,接口
欢迎关注微博:@小白程序员的日常 欢迎关注微博超话:#小白程序员的日常# 本人目前在自学java,会不间断更新java知识 同为小白或者有大佬可以一起探讨一下 一.多态 1.什么是多态 同一个对象,在 ...
- java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...
- java基础-类-抽象类-接口(自学笔记)
一.类 class 定义:具有相同属性(特性)和方法(行为)的一类事物 的抽象的总称 例如:人类,动物,车,屌丝类.是一种类别,世界上所有的事物都可以分类,在计算机中java都能进行对应和体现 类的三 ...
- java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方法吗
一.简单总结,需要重写的有 普通类继承抽象类,重写所有抽象类方法:(不包括普通方法) 普通类继承接口,重写所有接口方法.(不包括default关键字修饰的方法) 详解见下: 普通类继承,并非一定要重写 ...
- 腾讯架构师讲解Java接口的继承与抽象类
在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体.interface为类提供了接口规范. 在继承中,我们为了提高程序的可复用性,引入的继承机制.当时的 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
最新文章
- 300米远程深度估计:港科大重磅开源自动驾驶深度感知新技术,远超现有雷达|CVPR2020...
- 什么叫组网_5G NSA和SA是什么?有什么不同?
- Java Socket传输数据的文件系统介绍
- Vue-路由模式 hash 和 history
- 网站关键词如何布局更有利于关键词排名提升?
- 加密算法、DES、IDEA、RSA、DSA
- python最大堆_用Python实现最大堆
- Paper:GPT-3《 Language Models are Few-Shot Learners》的翻译与解读
- ibm系列文章 -- Windows 到 Linux 之旅
- .Net Core开发日志——Peachpie
- 遍历Map keySet和entrySet
- 双电阻差分电流采样_小小的采样电阻,还真有点门道!
- Spring Boot 集成 WebSocket,轻松实现信息推送!
- 【Pytorch】scatter函数详解
- 数学模型——人口增长模型(基于python)
- IDL调用ENVI-FLAASH大气校正异常退出解决办法
- 宾州州立大学帕克分校计算机科学,宾州州立大学帕克分校排名一览
- C语言程序设计学习笔记:P1-程序设计与C语言
- 【物理应用】大气辐射和透射率模型及太阳和月亮模型(Matlab代码实现)
- 微信小程序—刷脸实名认证
热门文章
- Python读取PDF内容
- IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
- SET ROWCOUNT
- careercup-中等难度 17.5
- 使用JTextArea示例
- 自定义Title(可以实现类似于携程网上价格的显示方式)
- .NET (C#) Internals: ASP.NET 应用程序与页面生命周期——吴秦(Tyler)
- Jenkins 使用 Kubernetes Plugin 完成持续构建与发布
- MySQL · 最佳实践 · 如何索引JSON字段
- DockOne微信分享(一一二):Flannel中vxlan backend的原理和实现