JAVA 重写重载/多态/抽象类/封装/接口/包

重写&重载

重写(override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变即外壳不变,核心重写!

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。


多态

多态就是同一个接口,使用不同的实例而执行不同操作

现实中,比如我们按下 F1 键这个动作:

  • 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
  • 如果当前在 Word 下弹出的就是 Word 帮助;
  • 在 Windows 下弹出的就是 Windows 帮助和支持。

同一个事件发生在不同的对象上会产生不同的结果。

多态的三个必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象

抽象类

所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

一个类只能继承一个抽象类,而一个类却可以实现多个接口。

抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。

抽象方法

抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号。

public abstract class Employee
{private String name;private String address;private int number;public abstract double computePay();//其余代码
}

  

  • 如果一个类包含抽象方法,那么该类必须是抽象类。
  • 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
  • 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

封装

封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

1. 修改属性的可见性来限制对属性的访问(一般限制为private)

2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问


 

接口

是一个抽象类型,是抽象方法的集合

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类


  • 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 2、如同文件夹一样,包也采用了树形目录的存储方式同一个包中的类名字是不同的不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

  • 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

 

转载于:https://www.cnblogs.com/tianmuxi/p/10538181.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写一个简单的WinForm程序(2)

经过高人指教之后的代码: using System; using System.Windows.Forms; using System.Drawing; namespace MyApplication { public partial class Form1 : Form { private delegate void ShowText(); TextBox textBox1 new TextBox(); …

mysql部署jar_mysql+jar踩坑记录

一、关于mysqlmysql 5用的驱动是com.mysql.jdbc.Drivermysql 6用的驱动是com.mysql.cj.jdbc.Drivermysql连接url中useUnicodetrue&characterEncodingutf8&serverTimezoneAsia/Shanghai作用useUnicodetrue&characterEncodingutf8—用来指定编码格式为utf8serverTime…

ajax和Java session监听

Session监听嘛,没什么好解释的,java提供了很灵活的事件机制来监听session,可以监听session的创建和销毁,监控session 所携带数据的创建、变化和销毁,可以监听session的锐化和钝化(了解对象序列化的兄弟应该…

计算机历年考研复试上机基础题(一)

abc 题目描述 设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abcbcc532。求满足条件的所有a、b、c的值。输入描述: 题目没有任何输入。 输出描述: 请输出所有满足题目条件的a、b、c的值。 a、b、c之间用空格隔开。 每个输出占一行。…

CSS选择器的权重与优先规则

2019独角兽企业重金招聘Python工程师标准>>> 我们在使用CSS对网页元素定义样式时经常会遇到这种情况:要对一般元素应用一般样式,然后在更特殊的元素上覆盖它们。那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢&…

《代码之美》第六章:菜鸟的自圆其说

Micheal Feather是我早就攻击过的专家级菜鸟,看过这一章,他在我心目中的高级初学者的形象,已经板上钉钉了。前两天看一本书,讲到调研表明,很多人在自己的领域干了20年,过了前五年,基本就不会再获…

java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?

我有这样的代码:public static void main(String[] args) {String str1 new StringBuilder("计算机").append("软件").toString();System.out.println(str1.intern()str1);String str2 new StringBuilder("ja").append("va&qu…

列表和range、元组

1、listt.append()默认追加在后面 2、list.insert(索引,“元素”)按索引添加 3、list.extend()可添加多个字或字母的字符串,也可以是列表 4、list.pop()默认删…

gridview添加header

gridview是不能添加header的,这里的解决方法是将listview改造成gridview使用,功能很好用,唯一的缺点是列数不能自适应 示例代码下载地址http://pan.baidu.com/s/1bnmyVZT 该项目是在国外博客看到的,连接 http://www.plattysoft.co…

RedHat下JDK1.6安装-利用alternative实现多版本并存(Ubuntu同理)

虽然本文讲的是RH下面的配置,不过Ubuntu里也是一样的! RedHat es下安装过程很简单,Sun下载JDK1.6包,解压,然后rpm安装 安装完后,在etc/profile.d/下建立java.sh,代码如下 JAVA_HOME/usr/java/jd…

java如何添加同名的xml节点_jaxb怎么解析多个同名元素

说明: xml是调用外部系统返回的, 收费服务, 格式无法更改XML格式....................................java 大概格式XmlRootElement(name "INFO")public class OrderResponse {private Status status;private List orderList;pub…

web.xml

1、web.xml学名叫部署描述符文件,是在Servlet规范中定义的,是web应用的配置文件。 2、部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个…

Scheme N皇后

(define (range n)(define (recur n)(if ( n -1)()(cons n (recur (- n 1)))))(recur (- n 1)))(define (flatten a)(if (null? a)()(append (car a) (flatten (cdr a)))))(define (safe? x y sln)(if (null? sln)#t(let ((px (car (car sln))) (py (cadr (car sln))))(if (…

python全栈开发学习_day1_计算机五大组成部分及操作系统

一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存&#…

Asp.net如何截屏

在C#案例开发这本书中提到了一个方法 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Drawing.Imaging; namespace zhua2 { /// <summary> /// Form1 的摘要…

php bloginfo stylesheeturl,WordPress主题制作–bloginfo函数使用教程

最近在做一款WordPress的主题&#xff0c;由于对PHP知之甚少&#xff0c;所以在制作过程中&#xff0c;还是费了很大劲儿的&#xff0c;现在就把在制作过程中遇到的一些问题逐一分享出来。开篇第一讲&#xff0c;我要分享的是bloginfo函数。这个函数主要是获取站点的相关信息&a…

201671030130+词频统计软件项目报告

&#xff08;一&#xff09;需求分析 根据实验二 软件工程个人项目的要求该软件项目的基本功能要求如下&#xff1a; 1.程序可读入任意英文文本文件&#xff0c;该文件中英文词数大于等于1个。 2.程序需要很壮健&#xff0c;能读取容纳英文原版《哈利波特》10万词以上的文章。 …

php系统维护,软件系统维护主要包含什么

软件系统维护主要包含软件系统正常使用要求与定期维护、软件系统初始化安装的维护准备。软件是用户与硬件之间的接口界面&#xff0c;用户主要是通过软件与计算机进行交流。本文操作环境&#xff1a;windows系统、thinkpad t480电脑。(学习视频分享&#xff1a;编程视频)计算机…

一个C#写的调用外部进程类

2008-05-21 07:00 作者&#xff1a; 肖波 出处&#xff1a; 天极网 C# 调用外部进程的类&#xff0c;网上可以搜出很多来&#xff0c;为什么要再写一遍&#xff0c;实在是因为最近从网上拷贝了一个简单的例程用到项目中&#xff0c;运行有问题&#xff0c;后来研究了半天&#…

lamp平台

LANMP平台LAMP指的Linux&#xff08;操作系统&#xff09;、ApacheHTTP 服务器&#xff0c;MySQL&#xff08;有时也指MariaDB&#xff0c;数据库软件&#xff09; 和PHP&#xff08;有时也是指Perl或Python&#xff09; 的第一个字母&#xff0c;一般用来建立web 服务器。lamp…