标签:
constructor
•new初始化该类的一个新的对象
•构造方法和类名同名,不写返回数据类型。
•Person( String n, int a ){
•name = n;
•age = a;
•}
•有一个至多个构造方法;如果没有定义任何构造方法,系统自动产生默认构造方法,不带参数,方法体为空。
overloading
相同名字的方法(参数个数不同,或参数类型不同)
编译时自动识别出来用哪个方法(多态的一种情况)
this
解决局部变量与字段重名的问题 this.age=age
调用另一构造方法 Person{this(0,""); ...;...}this必须放在第一句
inheritance
单继承,可添加修改父类行为;
extends,没有extends语句,则默认为java.lang.Object的子类
UML图,子类-->父类
字段的隐藏,子类重新定义一个与从父类那里继承来的域变量完全相同的变量,称为域的隐藏
override
子类定义与父类重名的方法(签名相同),修改实现方法
签名不同,则为overload,等于新加方法
super
父类有age,则可以用this.age,也可用super.age;super不能访问子类添加的字段和方法
super可以访问被子类所隐藏了的同名变量或方法,调用父类的方法 super.say()
调用父类的构造方法(子类不会继承父类构造方法)super(name,age)--也必须第一句
存在继承关系的父类对象和子类对象之间也可以在一定条件下相互转换
子类对象可视为父类的一个对象
父类对象不能当作其子类的对象
方法形参是父类对象,可使用子类对象作为实参
父类对象的引用实际指向一个子类对象,这个引用可强转成子类对象引用
Person p = new Person;Student s=(Student)p -编译时可以,运行时不行
标签:
原文地址:http://www.cnblogs.com/jack-xu/p/4795230.html