publicclass Car {
//1,定义成员变量
private Stringname;
private Stringcolor;
private Stringlogo;
privateint wheel;
public Car(){}//创建空参构造方法
public Car(Stringname , Stringcolor , Stringlogo ,intwheel ){
//初始化成员变量
super();//调用父类中(Object)中的构造方法,它平时是隐藏的,系统会自动生成。
this.name = name;
this.color = color;
this.logo = logo;
this.wheel = wheel;
}
protectedvoid run (){//创建方法显示 车的行为
System.out.println(this.name + "车跑了");
}
protectedvoid info(){ //车的信息
System.out.println("名字" + this.name ) ;
System.out.println("颜色" + this.color ) ;
System.out.println("logo" + this.logo ) ;
System.out.println("车轮" + this.wheel ) ;
}
public String getName() { //属性被私有了,所以用get set方法获取相应的属性值,以供子类使用,
returnname; //用shift +alt + s,后按r调用
}
publicvoid setName(Stringname) {
this.name = name;
}
public String getColor() {
returncolor;
}
publicvoid setColor(Stringcolor) {
this.color = color;
}
public String getLogo() {
returnlogo;
}
publicvoid setLogo(Stringlogo) {
this.logo = logo;
}
publicint getWheel() {
returnwheel;
}
publicvoid setWheel(intwheel) {
this.wheel = wheel;
}
}
package com.lijie.lianxi4;
publicclass QQextends Car {//继承了父类,所以拥有父类的属性方法
//若想改变或者拓展属性与方法,就改变set或get或本类中定义,
//或本类中添加方法,或在本类方法中引用父类方法,
//以达到使用父类方法中的功能的目的
private Stringlogo; //定义后就找本类的logo
private Stringtype;
private Stringwho;
public QQ(Stringlogo, Stringtype, Stringwho) {
super();//调用父类中(Car)的构造方法,它平时是隐藏的,系统会自动生成。
this.logo = logo;
this.type = type;
this.who = who;
}
public String getLogo() {
returnlogo;
}
publicvoid setLogo(Stringlogo) {
this.logo = logo;
}
public String getType() {
returntype;
}
publicvoid setType(Stringtype) {
this.type = type;
}
public String getWho() {
returnwho;
}
publicvoid setWho(Stringwho) {
this.who = who;
}
publicvoid run(){
super.run();//调用父类的run方法里的功能
System.out.println("约吗?");//自己拓展的功能
}
publicvoid info(){
System.out.println("类型" + this.type);//自己拓展的功能
}
publicstaticvoid main (String []args){
QQ myQq =new QQ("XXXX","QQ","我的");//创建了一个对象,名为myQq,属性是QQ,所以,数据是传入到QQ这个类里的构造方法中
myQq.setColor("风骚红"); //因为本类中没有setcolor这个方法,所以就跑去父类里找,由近到远
myQq.setLogo("QQ"); //因为本类中有setlogo这个方法,所以数据直接传入本类中的方法里
myQq.setName("迷你"); //因为本类中没有setName这个方法,所以就跑去父类里找,由近到远
myQq.run(); //因为本类中有run这个方法,所以数据直接传入本类中的方法里
myQq.info();//因为本类中有info这个方法,所以数据直接传入本类中的方法里
}
}