继承:
1.继承的概念:继承是类与类的一种关系,是一种“is a”的关系
注:Java中的继承是单继承。
2.继承的好处:
子类拥有父类的所有属性和方法。
实现代码复用
3.语法规则:
class 子类 extends 父类{}
private属性无法继承
1.继承的概念:继承是类与类的一种关系,是一种“is a”的关系
注:Java中的继承是单继承。
2.继承的好处:
子类拥有父类的所有属性和方法。
实现代码复用
3.语法规则:
class 子类 extends 父类{}
private属性无法继承
2015-08-31
public boolean equals(Object obj){
if(this == obj)//判断引用的地址是否相同
return true;
if(obj==null)//判断对象是否为空值
return false;
if(getClass()!=obj.getClass())//判断两个对象的类型是否相同
return false;//getClass()类对象:描述对象的类型信息 如:年龄
Dog other=(Dog) obj;//将对象转换成相同类型
if(age!=other.age)//比较属性是否相同
return false;
return true;
}
if(this == obj)//判断引用的地址是否相同
return true;
if(obj==null)//判断对象是否为空值
return false;
if(getClass()!=obj.getClass())//判断两个对象的类型是否相同
return false;//getClass()类对象:描述对象的类型信息 如:年龄
Dog other=(Dog) obj;//将对象转换成相同类型
if(age!=other.age)//比较属性是否相同
return false;
return true;
}
2015-08-31
最赞回答 / 山水之间123
类是模子,是抽象的概念,仅仅是模板,确定对象将会拥有的特征(属性)和行为(方法)。类在客观现实中是不存在的,只是用来描述客观对象的一部分共有信息。对象是一个你能够看得到、摸得着的具体实体。对象是计算机中具体的数据信息,而类就是这个具体数据信息的类型。不同的对象可以属于同一个类,一个类也可以对应多个对象。类的特点:1、类是对象的类型。2、具有相同属性和方法的一组对象的集合。属性——对象具有的各种特征,即有什么。每个对象的每个属性都拥有特定值。方法——对象执行的操作,即能干什么。
2015-08-31
已采纳回答 / Linapan
如果一个类、类属变量及方法不以这三种修饰符来修饰,那么包内的任何类都可以访问它,而包外的任何类 都不能访问它(包括包外继承了此类的子类),因此,这类、类属变量及方法对包内的其他类是友好的,开放的,而对包外的其他类是关闭的
2015-08-31
super关键字:
在对象的内部使用,可以代表父类对象
1.访问父类的属性 super.age
2.访问父类的方法 super.eat()
super的应用:
子类的构造的过程当中必须调用其父类的构造方法。
如果子类的构造方法中没有显示调用父类的构造方法,则系统系默认调用父类无参的构造方法。
如果显示的调用构造方法,必须在子类的构造方法的第一行。
如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
在对象的内部使用,可以代表父类对象
1.访问父类的属性 super.age
2.访问父类的方法 super.eat()
super的应用:
子类的构造的过程当中必须调用其父类的构造方法。
如果子类的构造方法中没有显示调用父类的构造方法,则系统系默认调用父类无参的构造方法。
如果显示的调用构造方法,必须在子类的构造方法的第一行。
如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
2015-08-31
final关键字:使用final关键字做表示有“最终的”含义
final可以修饰类、方法、属性和变量
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被覆盖(重写)
final修饰属性:则该类的属性不会进行隐式的初始化(初始化属性时赋值)或在构造方法中赋值(但只能选其一)
final修饰变量,则该变量的值只能赋一次值,即变为常量;
如果使用final修饰变量,且没有给该变量赋值,系统不会自动给该变量赋默认值0,会报错
final可以修饰类、方法、属性和变量
final修饰类,则该类不允许被继承
final修饰方法,则该方法不允许被覆盖(重写)
final修饰属性:则该类的属性不会进行隐式的初始化(初始化属性时赋值)或在构造方法中赋值(但只能选其一)
final修饰变量,则该变量的值只能赋一次值,即变为常量;
如果使用final修饰变量,且没有给该变量赋值,系统不会自动给该变量赋默认值0,会报错
2015-08-31
继承的初始化顺序
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
1.初始化父类再初始子类
2.先执行初始化对象中属性,再执行构造方法中的初始化。
(执行顺序:父类初始化对象 父类构造方法 子类初始化对象 子类构造方法)
2015-08-31
静态内部类不能直接访问外部类非静态成员,但可通过new 外部类().成员的方式访问。
如果外部类的成员名与内部类的成员名相同可以通过“类名.静态类名”访问外部类静态成员,不同直接用‘成员名’访问调用外部类静态成员。
创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
如果外部类的成员名与内部类的成员名相同可以通过“类名.静态类名”访问外部类静态成员,不同直接用‘成员名’访问调用外部类静态成员。
创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
2015-08-31