小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。

版权声明:版权归本博主所有,如若转载请注明出处,如有疑问,加WeCaht:13563758128 https://blog.csdn.net/yang13563758128/article/details/84000296

抽象类接口的理解

鲁迅的一句话:总之岁月漫长,然而值得等待。

/*
抽象类中的面试题:
1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成。
2.abstract关键字不能和哪些关键字共存:
   static final private


接口的概述与特点:
对外提供规则的都是接口,Java中interface为定义接口的关键字。
类实现接口用implements关键字。
接口不能实例化,用多态的方式来实例化。
接口的子类要重写接口中的所有抽象方法。


接口中的成员特点:
1.成员变量只能是常量,并且是静态的公共的,public static final。
2.构造方法:接口没有。
3.成员方法:只有抽象方法,public abstract。


类、接口之间的联系:
1.类与类:继承关系,只能单继承,可以多层继承。
2.类与接口:实现关系,能多实现,可以继承一个类的同时实现多个接口。
3.接口与接口:继承关系,可以单继承,也可以多继承。

抽象类和接口的理念:
1.抽象类被继承体现的是"is a"的关系,抽象类中定义的是该继承体系中的共性功能。
2.接口被实现体现的是"like a"的关系,接口中定义的是该实现体系中的扩展功能。

 */

/*
interface InterA{
    abstract void printA();
}
interface InterB{
    abstract void printB();
}
interface InterC extends InterA,InterB{

}*/
class day6{
    public static void main(String[] args) {
        new Dog(16,"老大").eat();
        new Dog(18,"老二").sleep();
        new Cat(13,"花花").eat();
        new Cat(12,"草草").sleep();
        new Cat(12,"草草").jump();
    }
}
/*
class demo implements InterC{
    public void printA(){
        System.out.println("接口A");
    }
    public void printB(){
        System.out.println("接口B");
    }
}
*/

interface Jump{
    public abstract void jump();
}


abstract class Animal{
    private int age;
    private String name;
    public Animal(){

    }
    public Animal(int age,String name){
        this.age=age;
        this.name=name;
    }
    abstract void eat();
    abstract void sleep();
    void setAge(int age){
        this.age=age;
    }
    void setName(String name){
        this.name=name;
    }
    int getAge(){
        return this.age;
    }
    String getName(){
        return this.name;
    }
}
class Dog extends Animal{
    public Dog(int age,String name){
        super(age,name);
    }
    void eat(){
        System.out.println(this.getAge()+"的"+this.getName()+"成功吃饭");
    }
    void sleep(){
        System.out.println(this.getAge()+"的"+this.getName()+"睡觉");
    }
}
class Cat extends Animal implements Jump{
    public Cat(int age,String name){
        super(age,name);
    }
    void eat(){
        System.out.println(this.getAge()+"的"+this.getName()+"成功吃饭");
    }
    void sleep(){
        System.out.println(this.getAge()+"的"+this.getName()+"睡觉");
    }
    public void jump(){
        System.out.println(this.getAge()+this.getName()+"学会了跳高");
    }
}


 

猜你喜欢

转载自blog.csdn.net/yang13563758128/article/details/84000296