接口、抽象类、方法复写、类Equals方法重写
2013-08-30 18:19
99 查看
接口:
抽象类:
派生类:
入口类:
/* * 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("二者不是同一個人喲~"); } }
相关文章推荐
- net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串(转)
- C#之抽象类、虚方法、重写、接口、密封类
- 接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)
- 马士兵J2SE-第三章-面向对象-Object类:toString方法、equals方法、对象转型、抽象类抽象方法、final关键字、接口
- C#-面向对象的三大特性——多态(虚方法与重写、抽象类、接口)
- ID的生成策略(hibernate的id生成策略,主键类为什么需要实现序列化接口,同时还要重写hashCode()和equals()方法)
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- java笔记(三)[java中的继承&java中的方法重载,重写,重构&java中的向上转型和乡下转型&java中的抽象类和接口&java中的接口向上转型]
- 类的继承,抽象类,接口,方法重写和重载
- 接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)
- 为什么抽象类实现接口的时候不需要重写接口里的方法?
- 当编写一个实体类去实现一个接口,或者抽象类时,在重写的方法上一直提示remove掉@Override;
- java 学习笔记--Comparator中为什么其他类实现这个接口为什么没有复写equals(Object obj)这个方法?
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- ID的生成策略(hibernate的id生成策略,主键类为什么需要实现序列化接口,同时还要重写hashCode()和equals()方法)
- 大龙的学习笔记之“虚方法,抽象方法,重写,抽象类,接口”
- .net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串
- 重写equals()与hashcode()方法,及comparable接口的实现
- java 继承 方法重写 自动转型 多态 接口 抽象类
- JAVA基础--重载与重写,接口与抽象类,构造方法的作用,代码块的分类