“商苑面馆:Java类的继承”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
写子类的构造方法
第75行: 第75行:
  
 
===写子类的构造方法===
 
===写子类的构造方法===
 +
子类构造方法 ,调用父类的构造方法。
  
public Noodle(String name,double price,int num){
+
<nowiki>public Noodle(String name,double price,int num){
 
super(name,price,num);
 
super(name,price,num);
}
+
}</nowiki>
  
 
===编写子类里面独有的成员和方法===
 
===编写子类里面独有的成员和方法===

2019年4月17日 (三) 02:14的版本

核心知识点=

  • 继承就是子类继承父类的特征和行为,使得代码能够复用;
  • 声明继承之后,子类就可以使用父类所有的变量和方法;
  • 如果有变量和方法父类当中不存在,子类可以自己定义。

步骤

定义一个父类

定义一个父类,并把子类当中公共的属性和方法定义到里面:

Food类:

public class Food {
	//成员变量
	//名称
	private String name;
	//价格
	private double price;
	//数量
	private int num;
	
	/*构造方法*/
	public Food(){
		
	}
	public Food(String name,double price,int num){
		this.name = name;
		this.price = price;
		this.num = num;
	}
	
	//成员方法
	public String getName(){
		return this.name;
	}
	public double getPrice(){
		return this.price;
	}
	public int getNum(){
		return this.num;
	}
	//写方法
	public boolean setName(String s){
		this.name = s;
		return true;
	}
	public boolean setPrice(double p){
	    this.price = p;
	    return true;
	}
	public boolean setNum(int n){
	    this.num = n;
	    return true;
	}
	   
	public String toString(){
	    return "名称:" +this.name+"价格:"+
	               this.price + "数量: " + this.num;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}


子类增添extends关键字

public class Noodle extends Food { ... }

写子类的构造方法

子类构造方法 ,调用父类的构造方法。

public Noodle(String name,double price,int num){
		super(name,price,num);
}

编写子类里面独有的成员和方法

子类的构造方法,调用父类的构造方法:

在父类的main方法里验证

代码

Food类:

public class Food {
	//成员变量
	//名称
	private String name;
	//价格
	private double price;
	//数量
	private int num;
	
	/*构造方法*/
	public Food(){
		
	}
	public Food(String name,double price,int num){
		this.name = name;
		this.price = price;
		this.num = num;
	}
	
	//成员方法
	public String getName(){
		return this.name;
	}
	public double getPrice(){
		return this.price;
	}
	public int getNum(){
		return this.num;
	}
	//写方法
	public boolean setName(String s){
		this.name = s;
		return true;
	}
	public boolean setPrice(double p){
	    this.price = p;
	    return true;
	}
	public boolean setNum(int n){
	    this.num = n;
	    return true;
	}
	   
	public String toString(){
	    return "名称:" +this.name+"价格:"+
	               this.price + "数量: " + this.num;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}


面条类:

public class Noodle extends Food {
	
	/*构造方法*/
	public Noodle(){
		
	}
	public Noodle(String name,double price,int num){
		super(name,price,num);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		        
        Noodle n2 = new Noodle("炸酱面",12,3);
        System.out.println("您订的面是"+n2.getName());
        System.out.println("价格:"+n2.getPrice());

        
       
        
	}

}



小吃类:


public class SmallEat extends Food{

    private String flavor;
    SmallEat(){
    	
    }
    SmallEat(String name,double price,int num){
    	super(name,price,num);
    }
public String toString(){
	    return "名称:" + getName()+"价格:"+
	               getPrice() + "数量: " + getNum() + "口味:"+ flavor;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        SmallEat s = new SmallEat("鹌鹑蛋",3,2);
        System.out.println(s.toString());
	}

}