7.31Java入门第十节--->数组(继承)
1、命令行参数
JVM要调用类的MAIN方法,所以该方法的访问权限必须是public
调用main方法不需要new对象,所以main方法必须是static修饰
cmd
java first
public static void main(String[] args) { }
可在调用main方法时,传入对应的值
2、可变命令行参数
public static void str(String...s){ for (String s1 : s) { System.out.println(s1); }
1.可传0-多个对应类型的值
2.使用时完全可以当作数组去使用
3.可变参数不可以重载
public static void str(int i,String...s){ for (String s1 : s) { System.out.println(s1); }
方法只可以有一个可变参数,包含可变参数,只能在参数列表最后一个
3、继承(extends)提取冗余代码,提高代码利用性
1.继承只能继承一个(单继承)
2.子类可以继承父类的所有属性和方法(构造方法不继承)
3.private修饰的属性和方法,父类可以调用,子类需要调用get,set方法
4.子类可以使用父类的属性和方法,也可以自己创建
5.子类父类重名,调用该属性,调用子类属性(如需调用父类同名属性,需用super)尽量避免
6.super 代表的是父类对象,super可以调用父类的属性和方法,super可以调用父类的构造方法,super写在第一句,不可以和this写在一起
练习
1.编写Computer 类,包含CPU,内存,硬盘等属性,getDetails方法用于返回Computer的属性详细信息 2.编写PC子类,继承Computer,添加特有的属性和方法 3.编写NotePad子类继承Computer,添加特有的属性和方法, 4.编写测试类Test,在main方法中创建PC和NotePad对象,分别访问对象中的特有属性和方法以及父类的属性
和方法,并打印
public class Computer { private String cpu; String Mem; String SATA; public String getDetails() { return "Computer{" + "cpu='" + cpu + '\'' + ", Mem='" + Mem + '\'' + ", SATA='" + SATA + '\'' + '}'; } // // public void getDetails(){ // System.out.println("cpu:"+cpu+"内存:"+Mem+"硬盘:"+SATA); // } public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getMem() { return Mem; } public void setMem(String mem) { Mem = mem; } public String getSATA() { return SATA; } public void setSATA(String SATA) { this.SATA = SATA; } public Computer() { } public Computer(String cpu, String mem, String SATA) { this.cpu = cpu; Mem = mem; this.SATA = SATA; } }
public class PC extends Computer { private int pencile; public int getPencile() { return pencile; } public void setPencile(int pencile) { this.pencile = pencile; } public void PCMain(){ System.out.println("PC价格:"+pencile); } public PC() { } public PC(String cpu, String mem, String SATA, int pencile) { super(cpu, mem, SATA); this.pencile = pencile; } public PC(int pencile) { this.pencile = pencile; } }
public class NotePad extends Computer { String Copy; public void notePadMain(){ System.out.println("NotePad品牌:"+Copy); } public NotePad() { } public NotePad(String cpu, String mem, String SATA, String copy) { super(cpu, mem, SATA); Copy = copy; } public NotePad(String copy) { Copy = copy; } }
public class Test { public static void main(String[] args) { PC pc=new PC(); pc.setPencile(2000); pc.setCpu("3600"); pc.Mem="宇瞻黑豹3000 8G*2"; pc.SATA="pcie3.0*4"; pc.PCMain(); System.out.println(pc.getDetails()); NotePad notePad=new NotePad(); notePad.Copy="msi"; notePad.setCpu("i7-8750H"); notePad.Mem="海力士2666 8G*2"; notePad.SATA="东芝 TR200"; notePad.notePadMain(); System.out.println(notePad.getDetails()); } }

浙公网安备 33010602011771号