接口:

/*
 * 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方法重写的更多相关文章

  1. OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类

    在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 . 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类. 1.只有接口,没有实现类. ...

  2. Java中Set的contains()方法——hashCode与equals方法的约定及重写原则

    转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...

  3. java 接口 继承 接口 抽象类 继承 实体类

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 接口 可以 继承 接口 抽象类 可以 实现 接口 抽象类 继承实体类 需要 实体类 有 ...

  4. Object类--equals方法

    equals方法 1.比较的是对象引用的是否指向同一块内存地址 public static void main(String[] args) { HuaWei huawei=new HuaWei(); ...

  5. Effective Java 第三版——10. 重写equals方法时遵守通用约定

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  6. JAVA中重写equals()方法为什么要重写hashcode()方法?

    object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true:注意:当此方法 ...

  7. Object 类中的 equals方法

    1 相等与同一 如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equals 函数原型为:public bo ...

  8. 浅析Object基类提供的Equals方法

    当我们去查看object.cs源代码文件的时候,会发现object基类提供了三种判断相等性的方法.弄清楚每种方法存在的原因,也就是具体解决了什么问题,对我们理解.net判断对象相等性的逻辑很有帮助,下 ...

  9. hashcode和equals方法的区别和联系

    说到 hashcode就要和Java中的集合,HashSet,HashMap 关系最为密切. 首先附录两张Java的集合结构图: 图二:(上图的简化版) 从Set集合的特点说起 & Set是如 ...

随机推荐

  1. JAVA object

    1.toString 把对象变成字符串  对于一个引用型变量toString写不写都是一样的 2.equals()  比较两个对象的引用是否一样. 3. public class EqualsTest ...

  2. 无语啊,sublime给我弄乱玩,玩坏了,而且安装插件也安装不了

    国内的什么插件地址都TMMD失效了,没办法,只能翻"强"到外面找了,而且找了很多也用不了,所以收藏一个为了预防以后不行有补救的方法: 百度的99%都不行,不是报这个错就是那个错,可 ...

  3. EntityFramework 使用经验

    1.Nuget控制台常用命令 1.获取EntityFramework命令帮助:get-help EntityFramework  2.在项目中启动数据迁移:Enable-Migrations 3.添加 ...

  4. Spring笔记--0907

    包含ioc和aop两大核心概念 aop----事务管理 spring框架运用的设计模式(查一下) ---------------------------------------Ioc(控制反转)和Di ...

  5. 点击每个li输出里面的内容(前端很常问的面试题之一)

    点击每个li输出里面的内容(前端很常问的面试题之一) 前端 面试 JavaScript <!DOCTYPE html> <html lang="en"> & ...

  6. Objective-C之Protocol

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  7. xcode6下使用autolayout+sizeclass实践

    历史车轮滚滚向前,将autolayout配合sizeclass做布局的方式推上了主流,虽然有点晚,但最终还是进行了一次完整的实践,特此记录一下: 因为网上已经有很多博客介绍了autolayout配合s ...

  8. CC++初学者编程教程(15) 基于cocos2dx的安卓打包环境

    1首先安装python 2 单击next 3 选择默认路径,单击next 4选择完全安装,单击next 5单击next开始安装 6 安装完成 7 设置环境变量 8 添加python的路径到path 9 ...

  9. js--学习方法之2-转

    再说几点忠告 1,不要着急看一些复杂网页效果的代码,这样除了打击你自信心,什么也学不到.没达到一定的武功水平,割了小JJ也学不会葵花宝典的. 2,别急着加技术交流QQ群,加牛人QQ.如果你找张三丰交流 ...

  10. Android初级教程IP拨号器初识广播接受者

    需求:输入ip号码并且保存在本地,监听打电话广播,如果电话号码以0开头,则加上ip区号拨打. 首先定义一个页面布局: <LinearLayout xmlns:android="http ...