2021-06-16
Posted m0_56896288
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-06-16相关的知识,希望对你有一定的参考价值。
第四章:抽象类与接口
4.1 抽象类的创建和使用
1.知识要点
抽象类的定义和使用:在设计父类的某些方法时,需保证子类继承父类中的某些方法,但父类因为比较抽象不是具体的,无法准确知道其子类如何类实现这些方法的细节,此时便可将父类定义为抽象类,那些需要子类继承却又无法知道其实现细节的方法,将其定义为抽象方法。具体实现细节交由继承抽象类的子类实现,抽象类作为子类的模板,从而避免子类在设计时的随意性,同时提高代码的重用。
2.抽象类的定义
在class关键字前使用abstract定义为抽象类,抽象类不能实例化,但是可以为子类提供便利。
3.继承抽象类的子类
子类继承抽象类后,必须重写抽象类中定义的所有抽象方法,否则会报错,除非子类又是一个抽象类。
4.知识要点
抽象类的定义和使用:
抽象类大多数出现在程序的架构设计中,具体的实现都是让子类来完成,目的是简化子类以及约束子类的功能。
抽象类可以编写如下内容:
属性、静态属性、常量、方法、抽象方法、构造方法。
抽象类的应用
package com.schools;
public class Triangel extends Shape{
private int x;
private int y;
private int z;
public Triangel(String color,int x,int y,int z) {
super(color);
this.x=x;
this.y=y;
this.z=z;
}
@Override
public double calcPerimeter() {
return x+y+z;
}
@Override
public String getType() {
return "三角形";
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getZ() {
return z;
}
public void setZ(int z) {
this.z = z;
}
}
package com.schools;
public class Circle extends Shape{
private int r;
public Circle(String color,int r) {
super(color);
this.r=r;
}
@Override
public double calcPerimeter() {
return 2*Math.PI*r;
}
@Override
public String getType() {
return "圆形";
}
}
package com.schools;
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape s1=new Triangel("黄色", 3, 4, 5);
System.out.println("周长是:"+s1.calcPerimeter()+"\\t图形是:"+s1.getType()+"\\t颜色是:"+s1.getColor());
Shape s2=new Circle("图形", 4);
System.out.println("图形是:"+s2.getType()+"\\t半径是:"+s2.calcPerimeter());
}
}
以上是关于2021-06-16的主要内容,如果未能解决你的问题,请参考以下文章