Java基础--抽象类与接口

抽象类:

/**
 * 抽象类,对类的抽象描述,包括属性、方法的抽象描述
 * @author 尘世间迷茫的小书童
 *
 */
public abstract class Myabstract {

    /**
     * 抽象类属性想要被子类继承,修饰符不能为private
     */
    public String name;
    public String sex;
    public int age;

    /**
     * 抽象类中的方法可以有选择的实现
     */
    public void testDo() {

    }

    public void testDo(String param) {
        System.out.println("hello world " + param);
    }

    public Myabstract() {}
}

/**
 * 子类通过extend继承抽象类
 * @author 尘世间迷茫的小书童
 *
 */
class People extends Myabstract{

    /**
     * 抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。
     * 在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法
     */
    public People() {
        super();
    }

    @Override
    public void testDo() {
        System.out.println("my name is " + this.name);
    }
}

接口:

/**
 * interface是对method的抽象描述,
 * interface解决单继承问题
 * interface可以解耦合
 * @author 尘世间迷茫的小书童
 *
 */
public interface MyInterface {

    /**
     * interface里的变量修饰符 public static final,变量不可修改
     */
    public static final String name = "小米";
    public static final String sex = "男";
    public static final int age = 23;

    /**
     * method对行为方法的抽象,不需要方法体
     * @return
     */
    public String testDo();

    /**
     * jdk1.8以后interface可以有方法体,需要加default关键字
     * @param param
     */
    public default void testDo(String param) {
        System.out.println("hello world " + param);
    }

}

/**
 * 实现类通过implements实现接口的所有方法
 * @author 尘世间迷茫的小书童
 *
 */
class Person implements MyInterface{

    @Override
    public String testDo() {
        return "my name is " + this.name;
    }

}

原文地址:https://www.cnblogs.com/mxh-java/p/11176300.html

时间: 2024-08-04 13:51:48

Java基础--抽象类与接口的相关文章

详解java基础--抽象类、接口与多态

抽象类.接口.多态都是面向对象中很基础的东西,我相信看到能本篇博客的人本不会再纠结它的基本定义了,本篇文章将尽量的更加深层次的挖掘其内涵,希望能对大家有帮助. 一.抽象类 1.形式 1 abstract class Ceshi 2 { 3 abstract void show(); 4 } 5 class DemoA extends Ceshi 6 { 7 void show() 8 { 9 System.out.print("Hello world"); 10 } 11 } 2.特点

Java基础-抽象类和接口

抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来.     例如:狼和狗共性都是犬科,犬科就是抽象出来的概念. 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现由子类完 成,该方法称为抽象方法,包含抽象方法的类就是抽象类. 抽象方法的由来: 多个对象都具备相同的功能,但是功能具体内容有所不

Java基础——抽象类和接口的关系

在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都能用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就应该被定义为抽象类. 抽象类 概述 比如,我们要描述"动物",它具有年龄.体积,会叫,能跑.但是又缺乏足够的特性(相较于阿猫,阿狗,它们都是动物,却有自己的特性),我们没有唯一的一种能够代表动物的东西(当然,这是相对于猫.狗来说的,在生物学上,动物还是有办法来定义的),这时我们可以用抽象类来描述它.当我们用某个类来具体描述&quo

黑马程序员----java基础---抽象类和接口,附相关面试题

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一:抽象类(掌握) (1)把多个共性的东西提取到一个类中,这是继承的做法. 但是呢,这多个共性的东西,在有些时候,方法声明一样,但是方法体. 也就是说,方法声明一样,但是每个具体的对象在具体实现的时候内容不一样. 所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体. 而一个没有具体的方法体的方法是抽象的方法. 在一个类中如果有抽象方法,该类必须定义为抽象类. (2)抽象类的特点 A:

java基础-抽象类与接口(转)

抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类       我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如new Animal(),我们都知道这个是产生一个动物Animal对象,但

黑马程序员-java基础-抽象类和接口

1,抽象类中可以有构造方法,主要是当实例化子类时,进行初始化. 2,抽象类中可以没有任何抽象方法 意义在于不让外界创建对象. 3,抽象类和关键字的共存问题 private abstratc method();  // 要重写,但又不支持重写 final abstract method();   //final 是让子类不重写 static abstract method(); // 方法属于类,必须实现 1,抽象类可以实现接口 其中的方法可以实现,也可以不实现. 2.成员特点 成员变量(接口中很

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

java基础学习总结——接口

java基础学习总结——接口 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴是一种应该受到保护的东西”,金丝猴从“应该受到保护的东西”这个类继承.这样金丝猴可以同时从 “动物类”.“值钱的东西类”.“应该受到保护的东西” 这三个类继承,但由于JAVA只支持单继承,因此金丝猴只能从这三个类中的一个来继承,不能同时继承这三个类.因此为了封装现实生活

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c