JAVA程序设计--继承和多态(四)

疏漏:

私有方法不能重写,因为他不能在类本身之外访问。



易漏:

静态方法能继承,但是不能重写,父类的静态方法一旦在子类中被重新定义,那么父类中定义的方法将被隐藏。



来一个封装,继承的实例:

Triangle.java

package test;
import java.util.*;
public class Triangle extends GemetricObject {
private double side1=1.0;
private double side2=1.0;
private double side3=1.0;

public Triangle() {}

public Triangle(double side1,double side2,double side3) {
this.side1=side1;
this.side2=side2;
this.side3=side3;
}

public Triangle(String color,boolean filled,double side1,double side2,double side3)
{
super(color,filled);
this.side1=side1;
this.side2=side2;
this.side3=side3;


}


public double getside1() 
{
	return side1;}

public double getside2() 
{
	return side2;}
public double getside3() 
{
	return side3;}

public void setside1(){
	this.side1=side1;
}
public void setside2(){
	this.side2=side2;
}
public void setside3(){
	this.side3=side3;
}
public double getArea() {
	double s = (side1 + side2 + side3) / 2;
return 	Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
	
}

public double getPerimeter() {
	return side1+side2+side3;
	
}

public String toString() {
	
	return "side1="+side1+"side2="+side2+"side3="+side3;
	
}


}

testTriangle.java

package test;
import java.util.*;
public class testTriangle {
public static void main(String args[]) {
	Scanner input = new Scanner(System.in);
	System.out.println("please input data");
	String color =input.nextLine();
	boolean filled=input.nextBoolean();
	double side1= input.nextDouble();
	double side2= input.nextDouble();
	double side3=  input.nextDouble();
	
	Triangle t= new Triangle(color,filled,side1,side2,side3);
	System.out.println(t.getArea()+" "+t.getPerimeter()+""+t.getcolor()+" "+t.getfilled()+" "+t.toString() );
}


}

GemetricObject.java

package test;

public class GemetricObject {
protected String color;
protected boolean filled;

public GemetricObject() {}
public GemetricObject(String color, boolean filled) {
	this.color=color;
	this.filled=filled;
	
}
public void setcolor() {
	
this.color=color;
	
}
public void setfilled(){
 this.filled=filled;
}
public boolean getfilled() {
	return filled;
}
public String getcolor() {
	return color;
}
}

猜你喜欢

转载自blog.csdn.net/qq_35827280/article/details/80385815