JAVA 继承基本类、抽象类、接口区别与联系

Java是一个面向对象的语言,java面向对象一般有三大特征:封装、继承、多态。

封装:就是把一些属性和方法封装到一个类里。

继承:就如子类继承父类的一些属性和方法。

多态:就如一个父类有多个不同特色的子类。


这里我就不多讲解,下面我主要说明一个继承。继承是OOP(面向对象)的一个特色,java只支持单继承(如果继承两个有同样方法的父类,那么就不知道继承到那个父类的,所以java只支持单继承)。继承是java的一个特色,我们用的所以类都继承Objict类,所以就要Object类的方法,如toString()、getClass()、wait()……所以我们建立的类都有父类。


Java中一般有三种类:


基本类:也就是一般的类(一般所说的类就是基本类),是对象的模板,是属性和方法的集合。可以继承其他基本类、抽象类、实现接口。

抽象类:有抽象方法的类(抽象方法就是该方法必须由继承来实现,本身只定义,不实现)。抽象类可以有一个或多个抽象方法,他是基本类和接口类的过度。

接口类:一般叫做接口,该类中的所有方法都是抽象方法,该类的方法本身只定义不实现。


抽象类和接口一个由【abstract class + 抽象类名】一个由【interface +接口名】定义,接口中的所以方法都是抽象方法,而抽象类有部分方法是自身实现了的,一些只定义不实现。

基本类的定义:
public class Fruit {


    public void price() {


       System.out.println("水果价格");


    }


    public void weight() {


       System.out.println("水果重量");


    }


}



抽象类的定义:
public abstract class Fruit {


    public void price() {


       System.out.println("水果价格");


    }


    public abstract void weight();


}



接口类的定义:
public interface Fruit {


    public void price();


    public void weight() ;


}



从上面我们可以看出接口就是抽象类的升级版,由于该类的方法全是抽象方法,所以把abstract换成interface。而接口的方法必须由子类才能实现。

继承
继承基本类,可以继承父类的方法,也可以重写,也可以扩充。下面是实现接口基本

类继承类:
public class Apple extends Fruit {


}
该类中就有Fruit基本类中的两个方法:price()和weight();


继承抽象类,必须实现抽象类的抽象方法,可以修改父类的方法,和添加方法。下面是继承抽象类的类:
public class Apple extends Fruit {


    @Override


    public void weight() {


       System.out.println("水果重量");


    }


}
该类继承类Fruit的price()方法,同时实现了Fruit抽象类的weight()方法。


继承接口类(也就实现接口),必须实现接口类的所有的抽象类和添加了。下面是继承接口的类:
public class Aple implements Fruit {


    @Override


    public void price() {


       System.out.println("水果价格");


    }


    @Override


    public void weight() {


       System.out.println("水果重量");


    }


}
该类是实现Fruit接口的所以抽象方法。


 
Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现)
如:public class Apple extends Fruit implements Fruit1, Fruit2{}

一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。其实继承是很简单的,可以就是没有弄清这两个关键字,当我们弄清楚也就是比较简单的。


接口也可以继承接口如:public interface Fruit1 extends Fruit,.. {}这是接口中的多重继承,同理抽象类和基本类也同理。如果我们把基本类添加final修饰,也就定义该类不被继承,该类不能作为父类。同时基本类的方法可以用public 、private、proptected来修饰方法,用final来阻止继承该方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值