java学习日记——抽象类

抽象类:


语法规则:

       抽象类前使用abstract关键字类修饰,则该类为抽象类。


应用场景:

       a:在某些情况下,某个父类只知道子类应该包含怎样的方法,但无法准确知道子类怎么实现这些方法。也就是说抽象类只关注子类必须有哪些方法,而并不关注子类怎样去实现。

       b:从多个具有相同特征的子类中抽象出一个类的模板,从而避免了子类设计的随意性。


作用:

       限制子类必须有那些方法,但不关注子类怎样去实现。


使用规则:

       使用abstract类修饰类

       使用abstract关键字类修饰抽象方法,但自己并不需要去实现

       包含抽象方法的类是抽象类

       抽象类中可以包含普通的方法,也可以没有抽象方法

       抽象类不能直接创建,但能定义引用变量


样例代码:

抽象父类:

package com.imooc;

public abstract class Graph {
	public abstract void area();
	public abstract void perimeter();
}

子类1:

package com.imooc;

public class Circle extends Graph 
{
	int r = 3;
	@Override
	public void area() {
		// TODO Auto-generated method stub
		System.out.println("The area of the circle is:" + Math.PI*Math.pow(r, 2));
	}

	@Override
	public void perimeter() {
		// TODO Auto-generated method stub
		System.out.println("The perimeter of the circle is:" + 2*Math.PI*r);
	}

}

子类2:

package com.imooc;

public class Rectangle extends Graph {
	
	int l = 10;
	int k = 20;
	@Override
	public void area() {
		// TODO Auto-generated method stub
		System.out.println("The area of the Rectangle is:" + l*k);
	}

	@Override
	public void perimeter() {
		// TODO Auto-generated method stub
		System.out.println("The perimeter of the Rectangle is:" + 2*(l+k));
	}
}


测试类:

package com.imooc;

public class Initial {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Graph obj1 = new Circle();
		obj1.area();
		obj1.perimeter();
		
		Graph obj2 = new Rectangle();
		obj2.area();
		obj2.perimeter();
	}

}

运行结果:

java学习日记——抽象类_第1张图片


大学还是要坚持多学一点东西才行啊~



你可能感兴趣的:(java,博客,Class,多态)