接口:
/** 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=newStudent("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("二者是同一個人喲~");elseSystem.out.println("二者不是同一個人喲~");}}