java--super_get_set_继承与拓展_调用由近到远(课堂)



 

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 {//继承了父类,所以拥有父类的属性方法

                           //若想改变或者拓展属性与方法,就改变setget或本类中定义,

                           //或本类中添加方法,或在本类方法中引用父类方法,

                           //以达到使用父类方法中的功能的目的

 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这个方法,所以数据直接传入本类中的方法里

  

 }

 

 

 

}

 

你可能感兴趣的:(java继承)