标签:name private 单词 stc set sys rac 方式 方法
抽象方法的概念:
当多个具体的实类存在着共同的行为,但是有不同的表现(学生和老师都睡觉,老师睡职工宿舍,学生睡在学生宿舍),在子类继承过程中父类方法的具体实现不能确定,但是能确定的是他们都有这种行为,我们把这种行为方法称为抽象方法。
抽象方法的语法:
public abstract [返回值] [void] 方法名(参数列表);没有方法体。
如果一个类中存在这么一个方法,那么这个类一定是抽象类。这个类上也要有abstract标识。
抽象类的语法:
abstract class 类名{
属性
方法
}
PS:抽象类中可以没有抽象方法,但是有抽象方法的一定是抽象类。
abstract class Cat{ //抽象类 String name; int age; public abstract void sleep(); } class BigCat extends Cat{ public void sleep(){ System.out.println(this.name+"在地毯上睡觉"); } } class SmallCat extends Cat{ public void sleep(){ System.out.println(this.name+"在窝里睡觉"); } } class TestCat{ public static void main(String[] args){ BigCat bg = new BigCat(); bg.name = "大黑"; bg.sleep(); SmallCat sc = new SmallCat(); sc.name = "二黑"; sc.sleep(); } }
抽象类的特点:
1.抽象类不能被实例化
2.如果一个子类继承了抽象类就必须实现抽象类里的所有抽象方法
3.抽象类必须被子类继承才能使用子类实例化
4.抽象类也可以继承抽象类,这样不需要实现父抽象类里的抽象方法
5.抽象类的抽象方法不能和private,static,final共存。
接口:
一个抽象类中,如果抽象类中的所有方法都是抽象的,那么我们就可以把它定义为一个接口,接口是对行为的抽象,类是对属性和行为的抽象。
语法:
interface 接口名{
方法的定义;
}
在接口中,每一个方法的定义都是抽象的,可以省略abstract,接口是不可以实例化的,需要有类来实现接口。
实现接口的语法:
class 类名 implements 接口名,接口名,...{
//实现接的类必须实现接口中的所有方法
}
接口中的方法不能和static,final,private共存。
接口中的属性默认都是static final 类型的。(通过接口名.属性名来访问,接口中的属性一般都是常量,并且不能修改,常量的名字规范是单词大写,多个单词之间使用下划线来分隔。)
接口可以继承接口,可以实现多继承和多级继承。
使用接口方式来计算圆,正方形的面积和周长
//定义一个接口里面有计算面积和周长的方法 interface CalInter{ public double getArea(); public double getLength(); //定义一个常量π double PAI = 3.14; } //定义一个圆的类然后实现接口里的方法 class Circle implements CalInter{ //实现计算面积的方法,先定义圆的半径 private double r; //定义一个可以传参数的构造器 public Circle(double r){ this.r = r; } //或者直接定义一个公共的set和get方法对r进行传参数和取值 /** *public void setR(double r){ this.r = r; } public double getR(){ return r; } */ //实现方法完成计算 public double getArea(){ return r*r*CalInter.PAI; } public double getLength(){ return 2*r*CalInter.PAI; } } class CalculateArea{ public static void main(String[] args){ Circle c = new Circle(3); double area = c.getArea(); double length = c.getLength(); System.out.println("半径为3的圆的面积为:"+area+" 周长为:"+length); } }
标签:name private 单词 stc set sys rac 方式 方法
原文地址:http://www.cnblogs.com/chenttc/p/7756896.html