java继承、接口和抽象类

  最近开始认真阅读java的基础书籍,以前好多东西都是只有一些概念,希望借助这次阅读java的基础知识能够对java有更加深入的了解。也希望大牛们能多给点知道意见。

1.java的继承:这个是面向对象编程的重要特征之一,它可以实现对类的复用。子类通过继承父类,可以使用父类中已经定义好的方法和变量。但是java中一个子类只能继承一个父类,这就是java单继承的概念吧。不过,一个父类却可以被多个子类继承。

子类继承父类的格式:修饰符class 子类名 extends 父类名 {//程序} 下面我们来看一个例子:

public class A{
public int c;
public void hh(){
System.out.println("zxcvbnm");
}
}

public class B extends A{
public void hehe(){
System.out.println("asdf");
}

public static void main(){
B b = new B();
b.c = 100;  //调用父类的公共成员变量
b.hh();     //调用父类的公共方法
b.hehe();   //调用本类的方法
}
}

子类继承了父类之后,然后以父类为基础,可以实现自己的方法。子类可以调用父类中的公共方法,也就是可以理解为子类能够使用父类的公共方法。当然,子类也可以重写父类的方法。子类重写父类方法的时候,要确保方法名相同,参数相同,返回值相同。这样子类在调用重写的方法时候,实际上调用的是子类重写的方法。当然,也可以用super作为调用者来调用父类被覆盖掉的方法。这里就不一一举例说明了。

2.java的接口(interface)和抽象类(abstract class)应该放在一起来说,因为两者之间有许多相似的地方,但是也有一些不同。l这两者代表的都是抽象类型。OOP面向对象的编程,如果要提高程序的复用率,增加可维护性,可扩展性,就必须使用java的接口和抽象类。

2.1 java的接口和抽象类最大的去边是抽象类可以部分的实现,而接口不能。接口中只能定义方法,而具体的实现是要在实现类中类写实现的方法。这应该是抽象类和接口的最大区别。再向一个抽象类中加入一个方法时,所有继承于这个抽象类的子类都能够得到这个方法。而如果再向接口中添加一个方法,所有的实现类中必须都实现这个方法。

2.2 一个抽象类的抽象方法只能只能在子类中实现,也就是说,这个实现处于抽象类所定义出的继承的机构中。但是由于java是单继承, 所以抽象类作为类型定义的工具的效能就大打折扣。而一个类可以实现多个接口,在这一点上,java的接口优势就显现出来了。接下来我们看看下面的例子:

接口:

public interface A {//定义接口A

public void hh(); //接口方法

public void hehe(); //接口方法

}

接口A的实现:

public class B implements A{   //实现接口A

@Override
public void hh() {   //hh方法的实现
System.out.println("AAA");
}
@Override
public void hehe() {  //hehe方法的实现
System.out.println("BBB");
}
}

方法B在实现接口A的时候要实现方法A中所有的方法。方法定义在接口A中,具体实现要在实现类中来写,这样就是接口,在接口中不能有实现的方法。

下面我们来看看抽象类

public abstract class A {  //抽象类A

public void hh(){      //方法hh
System.out.println("hhhh");
}

public abstract void hehe();  //抽象方法hehe
}

类B继承与抽象类A

   public class B extends A{ //类B继承于抽象类A


@Override
public void hehe() {   //实现抽象方法hehe 这点跟接口差不多
System.out.println("hehe");
}


}

我们可以看出在抽象类的继承中,B只需要实现A中定义的抽象方法hehe,而hh方法因为不是抽象的,也可以直接被B继承。

通过以上的介绍,大家能明白java类中的继承,Java的接口和抽象类了吧。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值