java(4)抽象类和接口
来源:互联网 发布:java api中文文档 编辑:程序博客网 时间:2024/06/05 15:18
抽象类
使用abstract修饰的类成为抽象类,使用abstract修饰的方法称为抽象方法。在解决实际问题是,一般将父类定义位抽象类,继承树越向上类就越抽象。在多态机制中,并不需要父类初始化对象。
/* * 抽象类的必要性:解决父类方法的不确定性 * * */package jerryzaki;public class Demo5 { public static void main(String[] args) { // TODO Auto-generated method stub }}abstract class Dongwu{//抽象类不能实例化也就是不能创建对象 String name; int age; abstract public void cry();//子类cry()中必须实现}//当父类是抽象类的时候,子类要实现抽象类的抽象方法(和接口相似)class Mao extends Dongwu{ public void cry() {//实现父类抽象类方法 System.out.println("猫猫叫"); }}
接口
接口是更纯粹的抽象类
总结:接口中的字段都是public+private+final;
/*
* 接口
*
* 接口不能被实例化
* 接口中不能有实现的方法,都不能被实现
* 一个类可以连接多个接口
* 接口中的变量本质上都是静态的 static 而且是final 不论加不加static,并且不能用private修饰
* 接口变量是static+final+public,我们把经常用的变量放在接口中,因为他是静态的
* 接口不能继承类,但可以继承别的接口
* 接口体现了多态和高内聚低耦合的设计思想
* */
package jerryzaki;
public class Test1 {
public static void main(String[] args) { // TODO Auto-generated method stub //System.out.println(Usb.a); Computer computer=new Computer(); Camera camera1=new Camera(); Phone phone1=new Phone(); computer.useUsb(camera1); computer.useUsb(phone1);}
}
interface Usb{//接口声明
public void start();
public void stop();
}
//一个重要的原则 这个类实现了这个接口 则要求 实现找这个接口的所有方法
class Camera implements Usb{ //链接接口与类?
public void start() {//前面声明过得所有方法都必须实现
System.out.println(“相机开始工作”);
}
public void stop() {
System.out.println(“相机停止工作”);
}
}
class Phone implements Usb{
public void start(){
System.out.println(“手机开始工作”);
}
public void stop(){
System.out.println(“手机开始工作”);
}
}
class Computer{
public void useUsb(Usb usb) {
usb.start();
usb.stop();
}
}
接口与继承
/* * 实现接口与继承 * * java的继承是单继承,1实现接口可以看作是对继承的补充 * 2接口可以在不打破继承关系的前提下,对某个功能扩展 * * */package jerryzaki;public class Test2{ public static void main(String[] args) { // TODO Auto-generated method stub } }interface Pig{ public void swim();}interface Bird{ public void fly();}class Monkey{ int age; String name; public void jump(){ System.out.println("猴子会跳"); }}class LittleMinkey extends Monkey implements Pig,Bird{ @Override public void swim() { // TODO Auto-generated method stub } @Override public void fly() { // TODO Auto-generated method stub }}
接口与多态
/* * 接口与多态 * * *///接口是一类对象的抽象,比如交通工具,不论是汽车还是飞机都是交通工具,他们可以有一个共同的方法run();package jerryzaki;public class Test3{public static void main(String args[]){ //父类引用指向子类对象 Vehicle vehicle = new Car(); //此时执行car类的run方法,输出 汽车行驶中。。。。 vehicle.run(); vehicle = new Plane(); //此时执行plane类的run方法,输出 飞机飞行中。。。。。。 vehicle.run(); //虽然调用的都是vehicle这个接口的run方法,但是由于指向的对象不同(而对象都实现了这个接口并且重写了其中的run方法,所以输出的结果是不一样的,这就是多态。 //多态并不只是通过接口才可以实现,父类也可以、实际上接口也是类,只不过是一个所有方法都是抽象方法的类,是一个完完全全的抽象类。 //多态的三个必要条件 //1:继承(extends,implements) //2:重写 Override //3:父类引用指向子类对象,就像上面例子中定义了一个vehicle对象,实际new 的是Car或者Plane //这样调用父类引用被重写的方法时就会有多态存在 }}interface Vehicle{ void run();}//那么所有的实现了vehicle这个接口的类必须重写接口内的方法//汽车class Car implements Vehicle{ @Override public void run(){ System.out.println("汽车行驶中......"); }}//飞机class Plane implements Vehicle{ @Override public void run(){ System.out.println("飞机飞行......"); }}
- java(4)抽象类和接口
- Java 抽象类,抽象方法和接口
- Java抽象类和抽象方法、接口
- Java接口和抽象类
- java接口和抽象类
- java 接口和抽象类
- java接口和抽象类
- JAVA抽象类和接口
- java抽象类和接口
- java抽象类和接口
- Java:抽象类和接口
- java接口和抽象类
- Java 抽象类和接口
- JAVA抽象类和接口
- java抽象类和接口
- java接口和抽象类
- JAVA抽象类和接口
- Java抽象类和接口
- rhce实战 博客教学
- 降维三部曲(三)
- 浏览器并发连接限制
- php开启redis扩展
- Loading图代码
- java(4)抽象类和接口
- 如何通过cmdline获取panel型号的dtsi文件节点(qcom,lcd,id)
- 降维三部曲(一)
- Spark rdd 介绍,和案例介绍
- hibernate
- Windows学习(010)--内核对象(一)
- Single Number II
- ui-select官方教程(二)——ui-select指令
- struts1于struts2的比较