#继承初理解
先看一段代码
package wzx;
import java.util.Scanner;
class goods{ //定义了一个父类
String name;
int number;
goods(){} //定义了一个无参的构造方法
public void ppt1(){ //定义了一个方法,作为判定的一种
System.out.println("本店没有此商品,请小主去别处看看");
}
}
class shits extends goods{ //鞋子子类
shits(){} //无参的构造方法
public void ppt2(String name,int number){ //定义第二种情况
this.name=name;
this.number=number;
System.out.println("此商品是"+name);
System.out.println("此鞋子的存货为"+number+"双");
System.out.println("本店鞋子为女士鞋,质量顶呱呱!");
}
}
class overcoat extends shits{ //定义外套类子类
overcoat(){} //无参的构造方法
public void ppt3(String name,int number){
this.name=name;
this.number=number;
System.out.println("此商品是"+name);
System.out.println("外套的存货为"+number+"套");
System.out.println("本店外套采用新疆长绒棉,米国人穿了都说好!");
}
}
public class exct{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int judge,judge2,f=1; //构造参数
judge= in.nextInt(); //jugde为判断运输情况的参数
judge2=in.nextInt(); //judge2为判断商品情况的参数
overcoat one=new overcoat(); //new一个新对象,此时overcoat已继承goods和shits的所有属性和方法(不包含private类),并且此时已经调用了无参的构造方法
if(judge2==1) //判断商品情况
one.ppt2("鞋子",50); //并输出
else if(judge2==2)
one.ppt3("外套",33);
else
{one.ppt1();
f=0; //f用来记录是否有此商品,如果无,则无需进行下一步判断
}
if(judge%2==0&&f==1) //输入商品单号,判断运输情况
System.out.println("您的宝贝正在运输中...");
else if(judge%2==1&&f==1)
System.out.println("您的宝贝已入站,请及时取走");
}
}
以上是运用了继承写的一个关于商品信息查询的简单代码,运行结果如下
110 2 //输入
此商品是外套 //以下为输出结果
外套的存货为33套
本店外套采用新疆长绒棉,米国人穿了都说好!
您的宝贝正在运输中...
成功实现一个简单查询。
##对继承的理解
写了关于继承的代码,初步理解继承,这里总结一下。
- 继承就是由一个类继承另一个类的属性和方法,就如同儿子继承父亲的眼睛,虽然一样,确是有复制的,并不是把父类存在子类中,而是复制了一份代码于子类中。
- 继承时需要无参构造,如果子类用无参构造,而父类只有有参构造,则会报错,不过在没有构造有参构造时,系统一般会默认一个无参构造,为了避免出错,最好显示的构造一个无参的构造方法。
- super也是·默认存在于子类方法中的第一行的关键字,
super()
可以在子类中调用父类中的方法(刚刚找了很久怎么使用),包括无参或有参的构造方法,但是注意!!!super只能写在方法的第一行,是方法的第一行!。 - 继承的出现可以更方便的编写代码(在我现在的认知里面),可以节省一定的代码量。
##总结
1.学的很浅薄,只是学的编程方法以及继承如何去用,关于继承如何去运行的以及它在堆栈里面是怎样去运行的了解很少。
2.继承关于多态之类的,不清楚。
3.在之前学c的时候,主要学习的是算法以及逻辑,对计算机底层的东西了解很少,对c是如何运行,堆栈是如何工作的了解很少,而现在学习java则更关注于了解底层的东西,也更复杂更乏味(至少学c的时候学出一道算法题好有成就感勒),而现在则需要一边一边的去实验个个结构,运行以及更深层的东西。
4.然后我的学习方法话说按照c那样,只是浅浅的了解如何去使用,这已经不够了,需要去改变,去找到一个更好的模式来学习java。
5.我觉得我现在更新的东西都好浅薄,哎,再说吧。
那样,只是浅浅的了解如何去使用,这已经不够了,需要去改变,去找到一个更好的模式来学习java。
5.我觉得我现在更新的东西都好浅薄,哎,再说吧。