java abstract and interface

Final

一个Final方法不能够被overriden,声明为static和private的方法也可以被看作是final,因为final方法的定义不可以被改变。所有在final类中的方法都是final.

 

Abstract,

声明类为abstract。继承abstract类的子类必须override abstract 方法。abstract类可以有instance data 和non abstract method apart from abstract methods. Abstract 类也可以由constructors.

 

public abstract class Employee{

private String name;

public Employee(String name){

name = name;

}

public String getFirstName(){

return name;

}

public String toString()

{

return name;

}

public abstract double earnings();

}

 

public final class Boss extends Employee{

public Boss(String name)

{

super(name);

}

public double earnings()

{

return 10;

}

public String toString()

{

return "";

}

}

 

abstract 父类和子类是is a 的关系,所以

我们可以用一个superclasss reference 指向subclass object. 但是这个superclass reference can only access superclass members in the subclass object, BUT NOT SUBCLASS ONLY MEMBERS. ie. Employee employee = boss;

 

继承:我们创建一个新的类来继承现有类,现有类的参数和方法都被子类拥有使用。通过super.

 

INTERFACE

包含一些public abstract 方法和public static final 参数。implements interface的类必须define interface中所有的方法,同样的参数数目和return type. 如果不的话,implements的类就变成一个abstract类。

 

定义一个final类型的reference means the reference will always refers to the same object, however, this object's could still be modified.

 

public interface Shap{

public static final int Temp = 10;

public abstract double area();

public abstract double volume();

}

public class Point extends Object implements Shape{

public double area()

{

return 213;

}

public double volume()

{

return 213;

}

public String toString()

{

return "";

}

}

 

 

当一个类implements一个interface时,它们的关系也是is - a, 就像继承一样。所以Shap shape = point; 即,a point object is Shape. objects of any classes that extends Point are also Shape objects. 所以,

public class Circle extends Point

{

public String toString()

{

return "";

}

public double area()

{

return 213;

}

}

 

同时,

Shape shape = circle;也可以。

interface 也可以这样用

public interface Constants

{

public static final int ONE = 1;

public static final int TWO = 2;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值