其他分享
首页 > 其他分享> > 2022-07-26 第二组 刘禹彤 学习笔记

2022-07-26 第二组 刘禹彤 学习笔记

作者:互联网

打卡第16天

今天继续学习面向对象

 

###学习内容:

1.面向对象特征:抽象

根本意义:约定

1.约定了返回值,访问权限,参数列表,需要在重写的时候去定义方法体

2.约定大于配置,配置大于编码

1.当我们定义了一个抽象类这个抽象类中可以有哪些结构

属性,成员方法,构造器,抽象方法,常量

2.抽象类中可以没有抽象方法

3.抽象类是不能被实例化的----抽象类不能创建对象

4.抽象类的构造器存在的意义:为了约定子类的构造器必须和父类相匹配

5.一个类如果继承了一个抽象类,就必须重写这个抽象类的抽象方法

类,方法

抽象方法能不能用final修饰?不能,用final修饰的方法不允许重写,抽象方法必须让子类重写d

抽象类能不能用final修饰?不能,用final修饰的类不能被继承,抽象方类必须让子类继承

总结:1.抽象方法必须是public或者protected(因为如果是private,不能被子类继承,子类便无法实现该方法

默认情况是可以的(默认情况其实就是public

2.抽象类不能被直接实例化,需要依靠子类采用向上转型方式处理

3.抽象类必须有子类,使用extends继承,一个类只能继承一个抽象类

4.子类(如果不是抽象类),则必须重写抽象类中的所有抽象方法

如果子类没有实现父类的抽象方法,必须将子类也定义成abstract

2.接口

JDK1.7之前)接口中只能定义抽象方法,不能有属性,不能有方法

(静态常量)

JDK8及以后)接口中只能定义抽象方法,不能有属性,可以有默认方法和静态方法

静态常量

(JDK7---JDK8):默认方法,静态方法

接口中的常量默认是public static final,推荐省略

比如说A类implements 接口,那我们就说A是这个接口的实现类

如果一个类实现了一个接口,他就需要重写接口中的所有抽象方法

实现接口是可以多实现的,继承只能单继承

开发中,如果一件事情可以通过继承和实现接口来解决问题,接口解决

面试题: 1.继承抽象类和实现接口的异同 同:都需要重写所有的抽象方法 异:实现接口是可以多实现的,继承只能单继承

2.在java中是否只有单继承? 不是 在java中是存在多继承的,发生在接口之间 java类与类之间只有单继承

面向接口编程

面向切面编程

面向对象编程

 

3.栈和队列

栈和队列是两种操作受限的线性表

这种受限表现在:

栈的插入和删除只允许在表的尾端进行(在栈中叫做”栈顶“,满足FILO

First In Last Out

队列只允许在表尾插入元素,在表头删除元素:FIFO First In First Out

1.都是线性结构

2.插入操作都是在表尾进行

3.都可以通过顺序结构和链式结构实现

1.队列:先进先出 栈:先进后出

###学习心得:

今天学习了面向对象最后一个特征:抽象,还学习了接口,栈,队列,上课基本可以跟上,不过做案例有点吃力

###掌握程度:一般

###练习:

public abstract class Animal {
    private String name;
    private  Integer age;

    public Animal() {
    }

    public Animal(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
     //抽象方法,没有大括号----没有方法体
    //抽象方法存在的意义是什么?
    //根本意义:约定
    //抽象方法到底约定了什么,规定了什么,定了那些规则?
        //约定了返回值,访问权限,参数列表,需要在重写的时候去定义方法体
    //约定大于配置,配置大于编码
    public abstract void eat();
    public abstract void show();
}
package a;

public abstract class Animal_Son extends Animal{

}
package a;

public class Person extends Animal{
    public void eat(){
        System.out.println("人在吃饭。。");
    }
    public void drank(){
        System.out.println("人在喝水");
    }

    @Override
    public void show() {
        System.out.println("haha");
    }
}
public class Ch01 {
    public static void main(String[] args) {
//        Animal animal = new Animal();不行
        Animal animal = new Person();
    }

}

 

###运行结果:

 

 

标签:26,07,子类,接口,抽象,刘禹彤,抽象类,方法,public
来源: https://www.cnblogs.com/lyt0612/p/16522180.html