Java-Computerexperimente (drei) Vererbung

(1)
1. Entwerfen Sie eine Klasse Point, die einen Punkt auf einer zweidimensionalen Ebene darstellt, einschließlich der Mitgliedsvariablen x und y eines geschützten Typs, die Koordinatenpositionen darstellen, sowie öffentlicher Methoden zum Erhalten und Festlegen der Werte von x und y.
2 Entwerfen Sie eine Klasse Circle, die einen Kreis auf einer zweidimensionalen Ebene darstellt, von der Klasse Point erbt und außerdem eine geschützte Darstellung des Radius des Kreises, eine Mitgliedsvariable vom Typ r und eine öffentliche Methode zum Erhalten und Festlegen enthält Wert von r und eine öffentliche Methode zur Berechnung der Kreisfläche.
3 Entwerfen Sie eine Zylinderklasse, die einen Zylinder darstellt, die von der Circle-Klasse erbt und außerdem eine Mitgliedsvariable h vom geschützten Typ enthält, die die Höhe des Zylinders darstellt, eine öffentliche Methode zum Abrufen und Festlegen des Werts von h und eine öffentliche Methode für Berechnen des Volumens des Zylinders.
4. Erstellen Sie mehrere Zylinderobjekte und geben Sie die Koordinaten ihrer Achsenpositionen, ihres Radius, ihrer Höhe und ihres Volumens aus.
Anforderungen: Jede Klasse enthält parameterlose und parametrisierte Konstruktoren. Der Konstruktor wird zum Initialisieren von Mitgliedsvariablen verwendet, und der parameterlose Konstruktor initialisiert Mitgliedsvariablen auf den Wert 0. Der Konstruktor der Unterklasse ruft den Konstruktor der übergeordneten Klasse auf, um die Mitgliedsvariablen in der übergeordneten Klasse zu initialisieren.

package 实验六继承;
class point
{
    
    
	protected double x1;//protected类型的成员变量x
	protected double y1;
	
	public void set1(double x,double y){
    
       //设置x和y值的public方法
		this.x1=x;           
		this.y1=y;
	}
	
	public double getx() //获取x
	{
    
    
		return x1;
	}
	
	public double gety() //获取y
	{
    
    
		return y1;
	}

}

class circle extends point{
    
      //继承
	protected double r1;
	
	public void set2(double r)
	{
    
    
		this.r1=r;
	}
	
	public double getr()
	{
    
    
		return r1;
	}
	
	public double getS()
	{
    
    
		return 3.14*r1*r1;
	}
}

class cylinder extends circle
{
    
    
	protected double h1;
	
	public void set3(double h)
	{
    
    
		h1=h;
	}
	
	public double geth()
	{
    
    
		return h1;
	}
	
	public double getV()
	{
    
    
		return getS()*h1;
	}
}
public class point0circle0cylinder {
    
    
	 public static void main(String[] args) 
	 {
    
    
	 cylinder cld=new cylinder(); 
	 cld.set1(2.2, 2.6);  //调用继承的方法
	 cld.set2(1.5);
	 cld.set3(1.5);
	 System.out.println("轴心坐标为"+"("+cld.x1+","+cld.y1+")");
	 System.out.println("半径为"+cld.r1+","+"底面积为"+cld.getS());
	 System.out.println("高为"+cld.h1+"体积为"+cld.getV());
	 }
	 
}

(2)
1. Definieren Sie eine abstrakte Klasse Printable, die eine Methode printItMyWay() enthält, eine abstrakte Methode ohne formale Parameter und mit dem Rückgabewert leer.
2. Schreiben Sie die Rechteckklasse neu, um die Printable-Klasse zu erben. Die printItMyWay()-Methode druckt die relevanten Informationen des Rechtecks ​​auf dem Bildschirm, z. B. die Länge und Breite des Rechtecks. .Hinweis: Die Klasse „Rechteck“ enthält die Länge und Breite des Rechtecks.
3. Fügen Sie der Printable-Klasse eine neue abstrakte Methode printItMyWay(char) hinzu. Diese Methode verfügt über einen Zeichenparameter und der Rückgabewert ist leer. Seine Funktion besteht darin, die angegebenen Zeichen zum Drucken im rechteckigen Zeilenbereich zu verwenden. Fügen Sie Anweisungen in der Hauptmethode hinzu, um printItMyWay() und printItMyWay(char) aufzurufen.

package 实验六继承;
abstract class Printable   //抽象类
{
    
    
	abstract void printItMyWay();//抽象方法	
	abstract void printItMyWay(char c);
}
class 矩形 extends Printable{
    
    
	
	int x;
	int y;
	char cc;
	public void get(int x1,int y1)
	{
    
    
		x=x1;
		y=y1;
	}
	public void printItMyWay()
	{
    
       
		System.out.println("x="+x+" y="+y);
	}
	public void printItMyWay(Printable c)
	{
    
       
		for(int i=1;i<=x;i++)
		{
    
    
			for(int j=1;j<=y;j++)
			{
    
    
				System.out.print(cc);
			}
			System.out.println();
		}
	}
}
public class print {
    
    

	public static void main(String[] args) {
    
    
		Printable pri=new 矩形();//pri使上转型对象
		矩形  ju=new 矩形();
		ju.get(10, 5);
		ju.cc='#';
		ju.printItMyWay();
		ju.printItMyWay(pri);
		
	}
}

(3)
Schreiben Sie ein Java-Anwendungsprogramm. Zusätzlich zur Hauptklasse gibt es 4 Klassen im Programm: People, ChinaPeople, AmericanPeople. und BeijingPeople. Die Anforderungen lauten wie folgt:
● Die People-Klasse verfügt über geschützte Mitgliedsvariablen vom doppelten Typ „Höhe“ und „Gewicht“ sowie über die Methoden „public void speakHello()“, „public void AverageHeight()“ und „public void AverageWeight()“.
●Die Klasse „ChinaPeople“ ist eine Unterklasse von „People“ und die Methode „public void chinaGongfu“ wurde hinzugefügt. ChinaPeople muss die Methoden public void speakHello(), public void AverageHeight() und public void AverageWeight() der übergeordneten Klasse neu schreiben.
●Die AmericaPeople-Klasse ist eine Unterklasse der People-Klasse und die öffentliche Methode voidamericanBoxing() wurde hinzugefügt. Die AmericaPeople-Klasse ist erforderlich, um die Methoden public void speakHello(), public void AverageHeight() und public void AverageWeight() der übergeordneten Klasse zu überschreiben.
●Die BeijingPeople-Klasse ist eine Unterklasse der ChinaPeople-Klasse mit einer neuen public void beijingOpera()-Methode. Die BeijingPeople-Klasse ist erforderlich, um die Methoden public void speakHello(), public void AverageHeight() und public void AverageWeight() der übergeordneten Klasse zu überschreiben.

package 实验六继承;

class People {
    
    
	   protected double weight,height;
	   
	    public void speakHello( ) {
    
    
	       System.out.println("yayawawa");
	    }  
	    
	    public void averageHeight() {
    
     
	       height=173;
	   System.out.println("average height:"+height);
	    }
	    
	   public void averageWeight( ) {
    
    
	       weight=70;
	       System.out.println("average weight:"+weight);
	    }
	   
	}
	class ChinaPeople extends People {
    
      
		public void speakHello( ) {
    
    
		       System.out.println("你好,吃饭了吗");
		    }   // 重写public void speakHello( )方法,要求输出类似“你好,吃饭了吗” 
	          // 这样的汉语信息
		
		 public void averageHeight() {
    
     
		       height=168.78;
		   System.out.println("ChinaPeople average height:"+height);
		    } // 重写public void averageHeight( )方法,要求输出类似
	          // “中国人的平均身高:168.78厘米”这样的汉语信息
		 
		 public void averageWeight( ) {
    
    
		       weight=65;
		       System.out.println("ChinaPeople average weight:"+weight);
		    }// 重写public void averageWeight( )方法,要求输出类似
	          //“中国人的平均体重:65公斤”这样的汉语信息
		 
	   public void chinaGongfu () {
    
    
	     System.out.println("坐如钟,站如松,睡如弓");// 输出中国武术的信息,如“坐如钟,站如松,睡如弓”等
	   }
	   
	}
	class AmericanPeople  extends People {
    
    
		 
	    public void speakHello( ) {
    
    
	       System.out.println("How do you do");
	    }  
	    
	    public void averageHeight() {
    
     
	       height=175;
	   System.out.println("AmericanPeople average height:"+height);
	    }
	    
	   public void averageWeight( ) {
    
    
	       weight=80;
	       System.out.println("AmericanPeople average weight:"+weight);
	    }
	   public void americanBoxing() {
    
    
		   System.out.println("直拳,钩拳"); // 输出拳击的信息,如“直拳”、“钩拳”等
	   }
	}
	class BeijingPeople extends ChinaPeople {
    
    
		 
	    public void speakHello( ) {
    
    
	       System.out.println("您好");
	    }  
	    
	    public void averageHeight() {
    
     
	       height=173.1321;
	   System.out.println("BeijingPeople average height:"+height);
	    }
	    
	   public void averageWeight( ) {
    
    
	       weight=69;
	       System.out.println("BeijingPeople average weight:"+weight);
	    }
	  public void beijingOpera() {
    
    
		  System.out.println("京剧");   // 输出京剧的信息
	   }
	}
	public class Example {
    
    
	    public static void main(String args[ ]) {
    
    
	      ChinaPeople chinaPeople=new ChinaPeople( );
	      AmericanPeople americanPeople=new AmericanPeople( );
	      BeijingPeople beijingPeople=new BeijingPeople( );
	      chinaPeople.speakHello( );
	      americanPeople.speakHello( );
	      beijingPeople.speakHello( );
	      chinaPeople.averageHeight( );
	      americanPeople.averageHeight( );
	      beijingPeople.averageHeight( );
	      chinaPeople.averageWeight( );
	      americanPeople.averageWeight( );
	      beijingPeople.averageWeight( );
	      chinaPeople.chinaGongfu( );
	      americanPeople.americanBoxing( );
	      beijingPeople.beijingOpera( ) ;
	      beijingPeople.chinaGongfu( );
	    }  
	}

おすすめ

転載: blog.csdn.net/weixin_52879528/article/details/124179986