温州建设网站公司哪家好,ui设计网课一般多少钱,网站链接锚文字怎么做,合肥餐饮网站建设今日内容 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 final的作用 修饰类,类不能被继承修饰方法,方法不能重写[重点]修饰变量/属性,变成常量,不能更改 static修饰方法的特点 static修饰的方法,可以通过类名调用 static修饰的属性特点 在内存只有一份,被该类的所有…今日内容 零、 复习昨日 一、作业 二、抽象 三、接口 零、 复习昨日 final的作用 修饰类,类不能被继承修饰方法,方法不能重写[重点]修饰变量/属性,变成常量,不能更改 static修饰方法的特点 static修饰的方法,可以通过类名调用 static修饰的属性特点 在内存只有一份,被该类的所有对象共享 多态效果形成的前提 继承重写向上转型 多态使用的场景 方法的参数列表是父类类型,调用方法传参数传入子类对象数组是父类类型,数组存储子类对象方法的返回值是父类类型, 返回时子类对象 什么叫向下转型?如何才能转型成功? 父类类型转成子类类型,需要强制转换先向上转型再向下转型,才可以成功 一、作业 见代码 二、抽象类
2.1 介绍 抽象: 不好理解不够具体看不懂 抽象类(abstract): 这个类是抽象的,方法与之前方法不一样,有点看不明白 2.2 语法 属性没有抽象性,不能被abstract修饰抽象方法就是没有方法体且被abstract修饰的方法抽象方法必须放在抽象类中,抽象类需要使用abstract修饰抽象类中可以有正常方法的抽象类也可以构造方法,但是不能被new直接创建对象抽象类还是类!!! // 抽象类(父类)
public abstract class Animal {int age;// 属性不能被抽象修饰// 抽象方法public abstract void eat();// 正常方法public void move(){System.out.println(动物移动 );}// 构造方法public Animal(){System.out.println(Animal() 抽象类构造执行了 );}
}
抽象类有抽象方法,正常方法,构造方法,但是不能创建对象,它有啥用?
主要是用来被子类继承的 子类可以继承抽象类继承抽象类后要么定义子类为抽象类要么就实现(implement)抽象方法 // Dog类
// 继承抽象类
public class Dog extends Animal{// 实现抽象方法(重写)Overridepublic void eat() {System.out.println(狗吃骨头 );}
}// 测试类
public static void main(String[] args) {// 创建抽象类对象// 发现不可以!!!// Animal animal new Animal();// 创建子类Dog dog new Dog( );dog.eat();// 调用自己重写过的方法dog.move();// 调用父类中的方法}2.3 使用总结 抽象类有方法,有个构造但是创建对象,他有什么用处? 被继承!!!当做父类引用去使用— 多态的场景下都可以使用抽象 比如之前写的那些类(动物类,员工类,形状类等等父类方法其实都会被子类重写) 既然有无抽象与之前写法用法都是多态,没有太多区别,那么为什么还需要抽象? 抽象有一层限制的思想以及作用,即继承抽象类,必须重写 使用上的经验总结: 对于别人写好的抽象类,如果要用,就要知道抽象类可以继承,然后重写抽象方法即可如果自己要设计代码,什么时候需要设计抽象类? 设计思想: 抽象差异化,具体共同点当设计时发现有很多类用到了重复的代码,此时要想到将重复代码抽象到父类那要不要设计成抽象父类?得看情况 如果子类中都需要使用同一个公共的方法,即子类不需要改变就能用的方法,那就把设计在父类中 具体共同点如果子类都需要使用一个方法,但是父类方法又不适用即子类需要重写的时候,那就把方法设计成抽象方法,此时就需要抽象类 抽象差异化 2.4 练习
将之前所写的多态的题目(员工类,形状类,动物类,兽医类)将父类变成抽象类,方法变成抽象方法,练习
三、接口 接口是比抽象类更抽象的一种文件,接口不是类 java的数据类型 基本数据类型引用数据类型: 数组,类,接口 3.1 语法特征 接口不是类,不需要class修饰而是interface接口所有属性都默认被public static final修饰,即全都是静态常量接口中所有方法都是抽象方法,且默认都被public abstract修饰不能定义构造方法,不能创建对象 // 接口
public interface TypeC {// 属性public static final int length 1;String brand HUAWEI;// 方法public abstract void chongdian();// 没有构造// public TypeC(){//// }
}接口存在的意义? 就是为了让子类使用,去实现接口的
// 子类 实现接口使用**implements**关键词子类实现接口,要重写全部的抽象方法类可以**允许同时实现多个接口(**多实现)类还可以在继承的同时再实现接口 // 子类继承类,同时实现接口,且允许多实现
public class Phone extends Dianzi implements TypeC,Tongxin{Overridepublic void chongdian() {System.out.println(手机充电 );}Overridepublic void chuansu() {System.out.println(传输数据 );}Overridepublic void tongxin() {System.out.println(可以卫星通信 );}
}特殊的, 接口是可以继承接口的,且是允许多继承 3.2 作用? 目前编码而言: 就当做一个父接口在多态中使用 即接口也可以当做父引用指向子类对象 既然都是当多态去使用,抽象和接口又什么区别?
抽象是类,接口不是类,类有单继承限制,接口没有,且允许继承同时再实现,这样呢可以对代码扩展能力有了提升抽象是类,类是一个模板是一个统称,描述一类东西的;接口是一种规范,约束,能力的体现,所有在设计代码时,代表物体,实体的设计成类,代表能力的设计成接口 接口往后,往深层次理解,接口是一种规范,约定! 按照规范去设计实现,就可以跟人家使用接口的物体进行对接 电脑 有USB接口,外设厂家按照USB接口实现创建了设备(键盘,鼠标,麦克风等等),这些外设就可以和电脑产生联系 -- 这里的USB接口作用就是规范,放两者产生关系 关联的 3.3 练习
pdf练习题