JAVA_SE基础——44.抽象类的练习

摘要:
*///定义抽象图形类abstractclassFigure{//使用参数Figure(Stringname){this.name=name.}定义构造方法//定义圆类并继承图形类classcircleextendsFigure{//定义double类型的成员变量rdubler;

抽象类要注意的细节:

1. 如果一个函数没有方法体,那么该函数必须要使用abstract修饰,把该函数修饰成抽象 的函数。。
2. 如果一个类出现了抽象的函数,那么该类也必须 使用abstract修饰。
3. 如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现。
4. 抽象类可以存在非抽象方法,也可以存在抽象的方法.
5. 抽象类可以不存在抽象方法的。 
6. 抽象类是不能创建对象的。
疑问:为什么抽象类不能创建对象呢?
因为抽象类是存在抽象方法的,如果能让抽象类创建对象的话,那么使用抽象的对象
调用抽象方法是没有任何意义的。

7. 抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的。


练习:使用抽象类计算一个矩形与圆形的面积。

测试代码1:(注释已经解释的很清楚了,所以我就不对代码做一一讲解了,)

package day09;
/*
  需求: 描述一个图形、圆形、 矩形三个类。不管哪种图形都会具备计算面积
与周长的行为,但是每种图形计算的方式不一致而已。
*/
//定义图形抽象类
abstract class Figure{
	//定义带参构造方法
	Figure(String name){
		this.name = name ;
	}
	//定义String型的成员变量name
	String name ;
	//定义抽象方法getArea()
	public abstract void getArea();
	//定义抽象方法getPerimeter()
	public abstract void getPerimeter();
	
}
//定义圆(circle)类  并 继承 图形(Figure)类
class circle extends Figure{
	//定义double型的成员变量r 
	double r ; 
	//定义double型的常量 PI ,并赋值3.14           
	static final double PI = 3.14 ; 
	//定义带参构造方法
	circle(String name,double r){
		super(name);
		this.r = r ;
	}
	//实现抽象方法getArea() 
	//定义计算圆的面积的方法
	public void getArea(){
		System.out.println(name+"的面积是"+PI*r*r);
	}
	//实现抽象方法getPerimeter() 
	//定义计算圆的周长的方法
	public void getPerimeter(){
		System.out.println(name+"的周长是"+2*PI*r);	
	}
}
//定义矩形(rectangle)类  并 继承 图形(Figure)类
class rectangle extends Figure{
	//定义int型成员变量high
	int high ;
	//定义int型成员变量length
	int length ;
	//定义带参构造方法
	rectangle(String name,int high,int length){
		super(name);
		this.high = high ; 
		this.length = length ; 
	}
	//实现抽象方法getArea() 
	//定义计算矩形的面积的方法
	public void getArea(){
		System.out.println(name+"的面积是"+high*length);
	}
	//实现抽象方法getPerimeter() 
	//定义计算矩形的周长的方法
	public void getPerimeter(){
		System.out.println(name+"的周长是"+2*(high+length));	
	}
}
//定义测试类Demo1
public class Demo1 {
	//程序入口
	public static void main(String[] agrs){
		//创建circle类的实例对象,并赋值半径r=3     实例对象: 为对象创建空间并为其赋值  
		circle c = new circle("圆形",3);
		//调用计算圆面积的方法
		c.getArea();
		//调用计算圆周长的方法
		c.getPerimeter() ;
		//创建rectangle类的实例对象,并赋值宽(high=2)长(length=4)    
		rectangle r = new rectangle("矩形",2,4) ; 
		//调用计算矩形面积的方法
		r.getArea();
		//调用计算矩形周长的方法
		r.getPerimeter();
	}
}

运行结果:

JAVA_SE基础——44.抽象类的练习第1张


交流学习企鹅:654249738


免责声明:文章转载自《JAVA_SE基础——44.抽象类的练习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LeetCode 79. Word Search单词搜索 (C++)当滚动条滚动到页面某个位置时,触发js,下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IOS开发—事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

触摸事件 在用户使用app过程中,会产生各种各样的事件 一、iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象” UIApplication、UIViewController、UIView都继承自UIRespond...

HTML5--Range对象的基本操作(5)

前言:   这节课主要学习HTML5中关于Range对象的常用API。   1.Range对象初识     作用:一个Range对象代表页面上的一段连续区域。通过Range对象,可以获取或修改网页上的任何区域。     Rnage对象示例: <body> Range对象初识</br> <input id="bt...

JSP,servlet和数据库之间传值出现乱码的问题

 近期困扰我非常久的一个问题最终攻克了,为他我头疼了好几天,问题是JSP通过servlet向数据库传值,查询显示在页面的时候出现了乱码,原先我数据库中有两行带有中文的数据,查询的时候倒是没有出现乱码。我debug一下。发现JSP和servlet中全部接受中文字符集的变量都没有出现乱码,我去数据库查看。全部加入的中文字符都是问号,问题发现了,我就百度什...

Internet Explorer无法打开站点,已终止操作

在页面还没有ready的时候就调用了htmlObject的appendChild或者innerHTML操作,这样会在IE上弹出一个对话框:“Internet Explorer无法打开站点,已终止操作”   在网上搜索了一下,解决方法大概为以下两点:   (1)在appendChild或者innerHTML操作处判断document.readyState==...

高性能 Windows Socket 组件 HPSocket

高性能 Windows Socket 组件 HP-Socket v2.1.1 正式发布(源代码及测试用例下载) HP-Socket   以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket。现在把 HP-Socket 的所有代码向大众公开,希望能对大家有所帮助;另外,为了让大家能更方便的学...

PyQt学习随笔:QTableWidget的selectedRanges、setRangeSelected访问选中矩形范围的方法

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget对项的操作支持选中多个项的情况下,可以通过方法selectedRanges返回选中矩形的列表,通过方法setRangeSelected将指定矩形范围的项选中或去选中。相关方法调用语法如下: list[QTableWidgetS...