JAVA学习笔记15——抽象类+接口

来源:互联网 发布:excel怎样做数据透视表 编辑:程序博客网 时间:2024/05/16 06:22

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。

本篇讲抽象类(abstract)和接口(interface)的主要内容。

首先来说一说抽象方法,抽象方法是一种只有声明但是没有方法体的方法,其意义为将方法的设计与实现分离。而抽象类之所以叫做抽象类就是因为有了抽象方法:


接下来看一看相关代码,关于一些细节方面的提醒均在代码中体现:

public abstract class Animal {String ss;//抽象类里面可以有正常的属性public abstract void run();   //定义抽象方法的格式public  void breath(){   //抽象类里面可以有正常的方法System.out.println();run();  //多态,如果调用指定是子类new出来的对象来调用的(抽象类不能new一个对象),所以这里调用的是子类的方法,不是父类的抽象方法,解释见上一篇笔记}}class Cat extends Animal{@Override   //注解,JDK5.0之后加入的,要求下面的方法必须是run的重写public void run() {// TODO Auto-generated method stubSystem.out.println("Cat run!");}}
public class Test {public static void main(String[] args) {// TODO Auto-generated method stubAnimal  a = new Cat();}}
第二个内容就是介绍接口:

接口是比抽象类更抽象的类,里面只有常量(注意:没有变量)和抽象方法。接口的常量定义的时候属性永远是public static final。未实现的方法只能是public abstract。这两个默认属性都是可以省略的不用写出来的。接口优势在于一个类可以实现多个接口、一个接口可以继承多个接口。



示例代码:

public interface MyInterface {String MAX_VALUE = "10000000";int max_speed = 120;public void test01();public int test02(int a,int b);}
public class MyClass implements MyInterface {   //要想实现接口必须实现其所有的所有的抽象方法。int v;@Overridepublic void test01() {// TODO Auto-generated method stubSystem.out.println("01");}@Overridepublic int test02(int a, int b) {// TODO Auto-generated method stubSystem.out.println("02!");return 0;}}
public class Test {public static void main(String[] args) {// TODO Auto-generated method stubMyInterface a = new MyClass();//a.v;回报错,接口不能跑到实现它的类里面去调用该类的成员变量.a.test01();//输出“01”}}








0 0
原创粉丝点击