Java学习第20天

时间:2021-08-06
本文章向大家介绍Java学习第20天,主要包括Java学习第20天使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

接口的成员特点:

(1) 成员变量:只能是常量。默认修饰符:public static final

(2)构造方法:接口没有构造方法,因为接口主要是对行为进行抽象,是没有具体存在,一个类如果没有父类,默认继承自Object类

(3)成员方法:只能是抽象方法,默认修饰符:public abstract;

接口示例:

package jicheng.com;

public interface Write {
    void write();
}

package jicheng.com;

public abstract class Animal2 {
    private int age;
    private String name;

    public Animal2() {
    }

    public Animal2(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void eat();
    public abstract void speak();

    public void run(){
        System.out.println("他能跑");
    }
}

package jicheng.com;

public class Cat3 extends Animal2 implements Write {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    @Override
    public void speak() {
        System.out.println("喵喵");
    }

    @Override
    public void write() {
        System.out.println("猫能写字");
    }

    public Cat3() {
    }

    public Cat3(int age, String name) {
        super(age, name);
    }

}

package jicheng.com;

public class Demo5 {
    public static void main(String[] args) {

        System.out.println("-------------");
        Write w=new Cat3();
        w.write();
        ((Cat3) w).eat();
        ((Cat3) w).speak();
        ((Cat3) w).setAge(18);
        ((Cat3) w).setName("加菲");
        System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
        w=new Cat3(19,"汤姆");
        System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
        System.out.println("-------------");

        Animal2 a=new Cat3();
        a.setAge(18);
        a.setName("加菲");
        a.speak();
        a.eat();
        ((Cat3) a).write();
        System.out.println(a.getAge()+" "+a.getName());
        a=new Cat3(19,"汤姆");
        System.out.println(a.getAge()+" "+a.getName());
        System.out.println("------------");
        //最后一种方法最实用
       
Cat3 c=new Cat3(18,"加菲");
        c.eat();
        c.speak();
        c.write();
        System.out.println(c.getAge()+" "+c.getName());
    }
}

类与接口的关系:

类和类的关系:继承关系,只能单继承,但可以多层继承

类和接口关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

接口和接口的关系:继承关系,可以单继承也可以多继承。

原文地址:https://www.cnblogs.com/20203923rensaihang/p/15110519.html