接口、抽象类、方法复写、类Equals方法重写
接口:
/*
* Java接口中的數據成員必須初始化,該成員有隱藏的final、satic、常量,
* 一次賦值后不可在賦值
* 成員方法訪問修飾符必須是公共修飾符,可以顯示聲明也可以不聲明
* 成員方法必須全部是抽象方法*/
interface IPerson {
String _className="高中一年級";
public String GetNameAndAge();
}
抽象类:
/*
* 抽象類必須包含抽象方法,並且類必須顯示聲明abstract,抽象成員方法不能實例化
* final如果類關鍵字聲明為final,那麼此類不可以派生
* 如果方法聲明為final,那麼此方法不可以複寫
* 如果數據成員聲明為final,那麼此成員只能賦值一次*/
abstract class Person implements IPerson {
final String _name;
int _age;
public Person(String name,int age)
{
_name= name;
_age=age;
}
public abstract String GetNameAndAge();
}
派生类:
/*
* super類似于C#中的base*/
public class Student extends Person {
private String _school; public Student(String name, int age, String school) {
super(name, age);
_school = school;
} public String getSchool() {
return _school;
} public String GetNameAndAge() {
return "Name:" + super._name + ";Age:" + super._age;
} /*
* Java中,对象比较默认的Equals方法是继承于基类Object,
* 所以在子类中必须把基类的Equals重写,
* 才能使当前类中的equals起作用*/
public boolean equals(Object obj) {
boolean _result = false;
if (obj != null) {
Student _student1 = this;
if (obj instanceof Student) {
Student _student2 = (Student) obj;
if (_student1.getSchool().equals(_student2.getSchool()))
_result = true;
}
}
return _result;
}
}
入口类:
public class ExecStudent {
public static void main(String[] args)
{
Student _student=new Student("zhang san",19,"riben university");
System.out.println("ClassName:"+IPerson._className+";School:"+_student.getSchool());
System.out.println("Name and age:"+_student.GetNameAndAge());
Student _student1=new Student("李三",18,"开开中学");
Student _student2=new Student("李三",18,"开开中学");
if(_student1.equals(_student2))
System.out.println("二者是同一個人喲~");
else
System.out.println("二者不是同一個人喲~");
}
}
接口、抽象类、方法复写、类Equals方法重写的更多相关文章
- OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类
在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 . 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类. 1.只有接口,没有实现类. ...
- Java中Set的contains()方法——hashCode与equals方法的约定及重写原则
转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...
- java 接口 继承 接口 抽象类 继承 实体类
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 接口 可以 继承 接口 抽象类 可以 实现 接口 抽象类 继承实体类 需要 实体类 有 ...
- Object类--equals方法
equals方法 1.比较的是对象引用的是否指向同一块内存地址 public static void main(String[] args) { HuaWei huawei=new HuaWei(); ...
- python干货-类属性和方法,类的方法重写
类属性与方法 类的私有属性 __private_attrs: 两个下划线开头,表明为私有,外部不可用,内部使用时self.__private_attrs. 类的方法 在类的内部,使用 def 关键字来 ...
- javaObject类-equals方法及覆盖
1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ...
- Effective Java 第三版——10. 重写equals方法时遵守通用约定
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式
API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...
- 重写equals方法需要知道的事
重写equals方法 相信在每个人都有过重写过java的equals的方法的经历.这篇博文就从以下几个方面说明重写equals方法的原由,与君共进步. 一 为什么要重写equals方法 首先我们了解e ...
随机推荐
- python35
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码.Python对bytes类型的数据用带b前缀的单引号或双引号表示x = b'ABC' //每个字 ...
- Swing基础
Swing基础 JFrame JPanel 绘图:paint 监听事件: ActionListener KeyListener Listener和Adapter 计时器:Timer Time ...
- [转]Oracle_ProC编程
1.引言 由于PL/SQL不能用来开发面向普通用户的应用程序,必须借助其他语言或开发工具. 在Linux操作系统下应该用什么语言或开发工具来进行Oracle数据库应用的开发呢?本文将介绍2种方案:Pr ...
- JavaScript高级程序设计之函数
函数实际上是对象,每个函数都是Function类型的实例. 函数是引用类型. 函数名实际上是一个指向函数对象的指针,不会与某个函数绑定. // 这种写法更能表达函数的本质 var sum = func ...
- linux命令行下使用R语言绘图
系统:centos 6.4 64bit 环境安装参考:http://hi.baidu.com/solohac/item/4a18e78f1bef9b5825ebd99c 在R语言中可以使用png()等 ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- verilog中级别到底是什么?级别的分类是什么???
1.级别到底是什么? 答:所谓的系统级,算法级,RTL级,门级,开关级,就是在不同的层次上来描述某个电路模块.当然行为级和结构级就是在行为上和结构上来描述电路模块. 模块可以用不同级别语言来描述,当然 ...
- vi/vim编辑器
vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大.
- 【上传AppStore】iOS项目上传到AppStore步骤流程(第二章) - 利用P12文件生成证书.多人开发必备 & 前言扫盲
前言的前言 : 有几种关系需要搞清楚的.由我自己经历的坑和看着网上大多数资料来说,比较混乱.现在整理一下 正如前面的文章所言.一套由零 - 申请证书 - AppIDs - Provisioning P ...
- eclipse格式化代码末班修改
在窗口->首选项->输入format(格式)搜索,或者找Java->代码样式->格式化程序: 几个内置的不能调格式化代码风格,但是可以根据内置的新建一个,出来很多选项,开始调吧 ...