内部类的使用以及抽象类的实现
2016-04-19 17:10
316 查看
package zhj_test;public class Point {public Point() {//TODO}public Point(String Name, String address) {this.aName = Name;Point.aAddress = address;}public String toString() {return this.getClass().getName() + "[" + getName() + ", " + Point.aAddress + "]";}public void setName(final String name) {this.aName = name;}public String getName() {return aName;}private String aName;public static String aAddress;static {aAddress = "BeiJing";}{aName = "asdfasdfasfadsf";}public static void print(Object obj) {System.out.println(obj);}public static void main(String[] args) {Point p = new Point();Point.print(p);Point p1 = new Point("Yoyo", "ShenYang");Point.print(p);Point.print(p1);Person[] ps = new Person[2];ps[0] = new Manager("zhj", "Beijing", "1010", 32);ps[1] = new Employee("test", "Beijing", "1010", 6);for (Person s : ps) {System.out.println(s.toString());}}abstract public static class Person {public Person() {}public Person(int age) {this.setAge(age);}public abstract String getName();public abstract String getAddress();public abstract String getCode();public abstract String toString();public int getAge() {return age;}public void setAge(int age) {this.age = age;}private int age;}public static class Manager extends Person {public Manager() {//TODO}public Manager(String name, String address, String code, int age) {super.setAge(age);this.aName = name;this.aAddress = address;this.aCode = code;}public String getName() {return aName;}public String getAddress() {return aAddress;}public String getCode() {return aCode;}public String toString() {return this.getClass().getName() + "[Name=" + this.getName() + ", age=" + this.getAge() +", address=" + this.getAddress() + ", Code=" + this.getCode();}private String aName;private String aAddress;private String aCode;}public static class Employee extends Person {public Employee() {//TODO}public Employee(String name, String address, String code, int age) {super.setAge(age);this.aName = name;this.aAddress = address;this.aCode = code;}public String getName() {return aName;}public String getAddress() {return aAddress;}public String getCode() {return aCode;}public String toString() {return this.getClass().getName() + "[Name=" + this.getName() + ", age=" + this.getAge() +", address=" + this.getAddress() + ", Code=" + this.getCode();}private String aName;private String aAddress;private String aCode;}}说明:1> 内部类的实现如上代码所示,由于在Java中,类中的静态方法不能直接调用动态方法。只有将内部类修饰为静态类(publicstatic ***),然后才能够在静态类中调用该类的成员变量与成员方法。2> 抽象类:关键字abstract(超类的前部,以及超类中的抽象方法,必须含有此关键字),方式:抽象类 :abstract class ***。抽象方法:public abstract String *** ...子类必须实现所有的抽象方法!
相关文章推荐
- 更新到android studio2.0后,运行时出现一个问题:Error running app: Instant Run requires 'Tools | Android | Enable AD
- JAVA虚拟机之六:虚拟机性能监控和故障处理工具
- NYOJ 30 Gone Fishing(贪心)(个人理解笔记)
- opencv里的norm范数和图像里的深度和通道数的理解和意义和相机标定后对内外参数的质量评估
- 【BZOJ3036】绿豆蛙的归宿 概率DP
- 第八周:战斗模块
- request对象和response对象的作用和相关方法
- R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
- ubuntu下安装mysql及卸载mysql方法
- JAVA虚拟机之五:常见配置与范例
- 冲刺一
- 莫比乌斯反演
- 为什么要乘以2?
- Netty 超时机制及心跳程序实现
- BZOJ4539 : [Hnoi2016]树
- Maven搭建SSM(SpringMVC + Spring + Mybaits)开发环境 (下)
- ntext、nvarchar(max)、nvarchar(len)性能对比测试
- 【干货】Spring MVC与JAX-RS比较与分析
- struts2开发7--在struts2中实现上传文件类型过滤
- 工程师离不开的那些电路设计工具 干货get√