1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java抽象 继承 多态 接口

java抽象 继承 多态 接口

时间:2020-12-27 19:06:30

相关推荐

java抽象 继承 多态 接口

**继承:**继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为

public class mp3 {private String size = "比较小";private String time = "听歌两个小时";public void music(){System.out.println("我可以播放音乐 mp3");}public String getSize() {return size;}public String setSize(String size) {this.size = size;return this.size;}public String getTime() {return time;}

package test;public class mp4 extends mp3{private String sizemp4 = "比较小";private String timemp4 = "听歌两个小时";public void music(){System.out.println("我是mp4,可以观看视频");super.music();//继承上一个父类}public String getSizemp4() {return sizemp4;}public void setSizemp4(String sizemp4) {this.sizemp4 = sizemp4;}public String getTimemp4() {return timemp4;}public void setTimemp4(String timemp4) {this.timemp4 = timemp4;}public static void main(String[] args) {// TODO Auto-generated method stubnew mp4().music();new mp4().setSize("现在还可以");System.out.println(new mp4().getSize()); System.out.println(new mp4().getSize());}}

这里面的mp3是mp4的父类,mp4可以继承mp3的方法 super.music();继承上一个父类,但是在子类构造方法可以通过super关键字访问。super(),括号中调用父类的相同参数的构造函数父类中有get和set方法,子类可以通过调用this.方法名访问父类的私有属性

**抽象:**在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

public abstract void makePC(); //抽象方法只有实现才有意义

抽象的类只有定义了之后才有意义

package test01;public abstract class leishi {//抽象方法必须出现在抽象类里,在下方使用抽象方法必须使用抽象类,抽象类里面的方法不是必须都是抽象方法private String kind;public abstract void makePC(); //抽象方法只有实现才有意义//public static void main(String[] args) {//// TODO Auto-generated method stub//// //}}

//抽象方法必须出现在抽象类里,在下方使用抽象方法必须使用抽象类,抽象类里面的方法不是必须都是抽象方法,抽象方法不一定只存在在抽象类中,还存在在接口中

package test01;public class test extends leishi{@Override //子类继承父类,若父类没有抽象方法则必须重写public void makePC() {// TODO Auto-generated method stubSystem.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");}}

//子类继承父类,若父类没有抽象方法则必须重写

package test01;public class padi extends leishi{public void makePC() {// TODO Auto-generated method stubSystem.out.println("a");System.out.println("b");System.out.println("c");System.out.println("d");}}

一个父类可有多个子类,一个子类只能有一个父类

leishi a = new test();a.makePC();leishi b = new padi();b.makePC();a=b; //由于ab都属于同级所以可以互相转换b=a;

在调用类的时候使用 leishi 类型接收,由于ab都属于同级所以可以互相转换

**多态:**多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

package test;public class test {public static void main(String[] args) {// TODO Auto-generated method stubmp3 mp3_01 = new mp3();mp3 mp3_02 = new mp4();mp4 mp4_01 = new moblie();mp3_01.music();mp3_02.music();}}

可以使用不同类来接收其功能也是不同的,子类可以转化为父类,父类不能转化为子类

接口:接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

package test01;public interface java001 {public abstract void jia(int m,int n);public abstract void jian(int m,int n);public abstract void cheng(int m,int n);public abstract void chu(int m,int n);}

一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类

package test01;public class java002 implements java001{@Overridepublic void jia(int m,int n) {// TODO Auto-generated method stubSystem.out.println("m+n="+(m+n));}@Overridepublic void jian(int m,int n) {// TODO Auto-generated method stubSystem.out.println("m+n="+(m-n));}@Overridepublic void cheng(int m,int n) {// TODO Auto-generated method stubSystem.out.println("m+n="+m*n);}@Overridepublic void chu(int m,int n) {// TODO Auto-generated method stubSystem.out.println("m+n="+m/n);}}

通过调用接口类中的方法实现目的,接口不能用继承需要使用实现implements

java001 t = new java002();t.jia(a,b);

因为在抽象方法中有值所以需要传递数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。