java之抽象类(abstract)
程序员文章站
2024-02-17 16:35:28
...
1.抽象类 用abstract修饰
1)父类知道子类应该包含怎样的方法,但无法准确知道这些子类如何实现
2)从多个具有相同特征的类中抽出一个抽象类,
使用规则:
1)abstract来定义抽象类
2)abstrct定义抽象方法,只有声明,不许实现
3)包含抽象方法的类是抽象类
4) 抽象类可以有普通方法,也可以没有抽象方法 (即抽象方法是抽象类的必要条件)
demo:
父类:
public abstract class Shape {
public abstract void perimeter(); //perimeter周长
public abstract void area(); //area面积
}
子类1:
public class Rectangle extends Shape {
public int a,b;
@Override
public void area() {
// TODO Auto-generated method stub
System.out.println("矩形的面积:" + a*b);
}
@Override
public void perimeter() {
// TODO Auto-generated method stub
System.out.println("矩形的周长:" + (a+b)*2);
}
}
子类2:
public class Circle extends Shape {
public double pi = 3.14;
public double r;
@Override
public void area() {
// TODO Auto-generated method stub
System.out.println("圆的面积:" + pi*r*r);
}
@Override
public void perimeter() {
// TODO Auto-generated method stub
System.out.println("圆的周长:" + 2.0*pi*r);
}
}
测试类:
import java.util.Scanner;
public class TestShape {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(true) {
Rectangle work1 = new Rectangle();
System.out.print("请输入矩形的长 && 宽:");
work1.a = in.nextInt();
work1.b = in.nextInt();
work1.area();
work1.perimeter();
System.out.println();
System.out.print("请输入圆的半径:");
Circle work2 = new Circle();
work2.r = in.nextDouble();
work2.area();
work2.perimeter();
System.out.println();
}
}
}
运行结果:
请输入矩形的长 && 宽:2 3
矩形的面积:6
矩形的周长:10
请输入圆的半径:6
圆的面积:113.03999999999999
圆的周长:37.68
上一篇: Android Iconfont-阿里巴巴矢量图标库的简单使用
下一篇: 作用域,作用域链和闭包精解