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