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

来自CloudWiki
跳转至: 导航搜索
编写子类里面独有的成员和方法
第73行: 第73行:
 
...
 
...
 
}</nowiki>
 
}</nowiki>
 +
 +
 +
 +
  
 
===写子类的构造方法===
 
===写子类的构造方法===
 
子类构造方法 ,调用父类的构造方法。
 
子类构造方法 ,调用父类的构造方法。
  
  <nowiki>public Noodle(String name,double price,int num){
+
  <nowiki>public class Noodle extends Food {
 +
private double weight;//份量
 +
/*构造方法*/
 +
public Noodle(){
 +
 +
}
 +
public Noodle(String name,double price,int num){
 +
super(name,price,num);
 +
}
 +
</nowiki>
 +
===编写子类里面独有的成员和方法===
 +
 
 +
面条类:
 +
 
 +
<nowiki>
 +
public class Noodle extends Food {
 +
private double weight;//份量
 +
/*构造方法*/
 +
public Noodle(){
 +
 +
}
 +
public Noodle(String name,double price,int num){
 
super(name,price,num);
 
super(name,price,num);
 +
}
 +
        //增添新变量后,新的构造方法
 +
public Noodle(String name,double price,int num,double weight){
 +
super(name,price,num);
 +
                this.weight = weight;
 +
}
 +
 +
        public void getWeight(){
 +
          return this.weight;
 +
         
 +
}
 +
 
}</nowiki>
 
}</nowiki>
 +
===main方法里验证===
 +
在Noodle类里main方法里写代码,对刚才的编码进行验证。
  
===编写子类里面独有的成员和方法===
+
<nowiki>public static void main(String[] args) {
 +
// TODO Auto-generated method stub
 +
       
 +
        Noodle n2 = new Noodle("炸酱面",12,3,500);
 +
        System.out.println("您订的面是"+n2.getName());
 +
        System.out.println("份量:"+n2.getWeight());
  
===在父类的main方法里验证===
+
       
 +
     
 +
       
 +
}</nowiki>
  
 
==代码==
 
==代码==
第152行: 第199行:
 
  <nowiki>
 
  <nowiki>
 
public class Noodle extends Food {
 
public class Noodle extends Food {
+
private double weight;//份量
 
/*构造方法*/
 
/*构造方法*/
 
public Noodle(){
 
public Noodle(){
第160行: 第207行:
 
super(name,price,num);
 
super(name,price,num);
 
}
 
}
+
        //增添新变量后,新的构造方法
public static void main(String[] args) {
+
public Noodle(String name,double price,int num,double weight){
 +
super(name,price,num);
 +
                this.weight = weight;
 +
}
 +
 +
        public void getWeight(){
 +
          return this.weight;
 +
 
 +
         
 +
}
 +
 
 +
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
// TODO Auto-generated method stub
 
         
 
         
         Noodle n2 = new Noodle("炸酱面",12,3);
+
         Noodle n2 = new Noodle("炸酱面",12,3,500);
 
         System.out.println("您订的面是"+n2.getName());
 
         System.out.println("您订的面是"+n2.getName());
         System.out.println("价格:"+n2.getPrice());
+
         System.out.println("份量:"+n2.getWeight());
  
 
          
 
          
第172行: 第230行:
 
          
 
          
 
}
 
}
 
+
}
+
}</nowiki>
  
  

2019年4月17日 (三) 05:43的版本

核心知识点=

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

步骤

定义一个父类

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

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 class Noodle extends Food {
	private double weight;//份量
	/*构造方法*/
	public Noodle(){
		
	}
	public Noodle(String name,double price,int num){
		super(name,price,num);
	}

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

面条类:

public class Noodle extends Food {
	private double weight;//份量
	/*构造方法*/
	public Noodle(){
		
	}
	public Noodle(String name,double price,int num){
		super(name,price,num);
	}
        //增添新变量后,新的构造方法
	public Noodle(String name,double price,int num,double weight){
		super(name,price,num);
                this.weight = weight;
	}
 
        public void getWeight(){
           return this.weight;
           
}
	
}

main方法里验证

在Noodle类里main方法里写代码,对刚才的编码进行验证。

public static void main(String[] args) {
		// TODO Auto-generated method stub
		        
        Noodle n2 = new Noodle("炸酱面",12,3,500);
        System.out.println("您订的面是"+n2.getName());
        System.out.println("份量:"+n2.getWeight());

        
       
        
	}

代码

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 {
	private double weight;//份量
	/*构造方法*/
	public Noodle(){
		
	}
	public Noodle(String name,double price,int num){
		super(name,price,num);
	}
        //增添新变量后,新的构造方法
	public Noodle(String name,double price,int num,double weight){
		super(name,price,num);
                this.weight = weight;
	}
 
        public void getWeight(){
           return this.weight;

           
}

public static void main(String[] args) {
		// TODO Auto-generated method stub
		        
        Noodle n2 = new Noodle("炸酱面",12,3,500);
        System.out.println("您订的面是"+n2.getName());
        System.out.println("份量:"+n2.getWeight());

        
       
        
	}
	
}


</nowiki>

小吃类:


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());
	}

}