抽象类

java基础

风格不统一 提交于 2020-01-01 02:04:47
1.java语言编程的好处: Java是目前使用最为广泛的网络编程语言之一,它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点。面向对象基于对象的编程更符合人的思维模式,使人们更容易编写程序。 2.对象: 所有东西都是对象,可以将对象想象成一种新型变量,它可以保存数据,也可以要求它对自身进行一些操作。其实程序就是很多对象的集合,通过调用请求(向目标对象的子例程或函数来发一个请求,从而调用),每个对象都知道自己该做什么。每个对象都有自己的存储空间,可以容纳其他对象(通过封装现有对象,可制作出新型对象)。每个对象都是一种类型,每个对象都是某个类的实例。同一类的所有对象都能接收相同的信息,如果类型为圆的一个对象属于类型为形状的一个对象,那么这个为圆的对象一定能接收到为形状的对象的消息。这也就意味着可以让代码操作为形状的对象,让它控制所有符合形状描述的对象,也包括圆,这一特性就是面向对象编程的一个重要概念之一:可替换性。 3.对象的接口: 我们想对象发出的请求是通过接口来定义的,对象的类型或者类规定了它的接口形式。然后类类型和接口的等价或对应关系是面向对象程序设计的基础。接口,规定了可对一个特定的对象发出哪些请求(必须在某个地方存在着一些代码来满足这些请求),这些代码和那些隐藏起来的数据就叫做隐藏的实现。接口的另一种方式,一种类型含有与每种可能的请求关联起来的函数

Java面向对象 学习笔记【实验楼】

匆匆过客 提交于 2020-01-01 00:57:07
类 对于一个具体的对象而言,比如一部 iphone 6,世上还有许多跟这部手机有着同样属性或行为的对象,我们为了方便将它们归类起来,提取出他们相同的属性和行为,而我们把归类起来的这个抽象的概念,称之为类。 比如每个人就是一个对象,小张是一个对象,小明是一个对象。而每个人虽然不同,但却有许多相同的属性和行为,于是我们可以把他们抽象出来,变成一个类,比如人类。 类是封装对象的属性和行为的载体 ,反过来说具有相同属性和行为的一类实体被称为类。 由此可以总结出类的定义: 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。 类是具有相同属性和方法(行为)的对象的集合 我们在上面反复强调对象的属性和行为,什么是对象的属性呢?什么又是对象的行为呢? 属性是对象具有的特征 。每个对象的每个属性都拥有特定值。我们上面讲过对象是一个具体并且确定的事物,正是对象属性的值来区分不同的对象,比如我们可以通过一个人的外貌特征区分他。 那什么是对象的行为呢?在计算机中我们通过方法去实现对象的行为,而 对象的方法便是对象所具有的操作 ,比如人会走路、会哭泣、会学习等等都是人的行为,也就是人的方法。 类和对象之间有什么关系吗?在上面的讲解中大家应该有些了解了。 类就是对象的抽象(或者模板),对象就是类的具体(或者实例) 。比如手机是一个抽象的概念,它代表着类。而一部 iphone 6

多态的笔记

99封情书 提交于 2020-01-01 00:24:44
文章目录 多态 多态的概述 多态中成员访问特点 多态的好处和弊端 写一个多态程序的步骤(必须掌握) 多态中的转型 多态的案例 抽象类 抽象类的概述 抽象类的特点 **抽象类的成员特点** 抽象类的案例 接口 接口的概述 接口的举例 接口的特点 **接口的成员特点** 接口的案例 类和接口的关系 抽象类和接口的区别 综合案例 多态 多态的概述 什么是多态? 答:同一个对象,在不同的时刻有多种形态 比如: Animal an = new Cat ( ) ; Animal an = new Dog ( ) ; 多态的举例 绿巨人 , 是正常人的时候是班纳,发怒后就变为绿巨人 毛毛虫,刚开始是个虫,过段时间后就变为蝶了。 多态的形式:具体类多态、 抽象类多态、接口多态 多态的前提 要有实现 || 继承关系 要有方法的重写 体现:继承关系下,子类重写父类的方法;实现关系下,实现类 来实现接口中的方法 父类的引用类型的变量指向了子类对象,接口的引用类型变量指向了实现类对象 多态中成员访问特点 成员访问特点 成员变量( 实际开发中不太关注 ) 编译看左边,运行看左边 成员方法(重点掌握) 编译看左边,运行看右边 总结:编译全看左边,只有成员方法运行看右边 代码展示: // 动物类 public class Animal { public int age = 40 ; public void

JAVA学习笔记--二

二次信任 提交于 2019-12-31 16:38:20
一 、抽象类: 访问修饰符 abstract class 类名 { } 抽象类和普通类的区别: 1、 抽象类不能被实例化 2、 抽象类一般含有抽象方法 抽象方法:在抽象类中只有方法签名(方法声明),没有方法实现,具体实现在继承了该抽象类的子类中实现 3、 抽象类可以没有抽象方法,但是一旦某个类有了一个抽象方法,那么该类一定是一个抽象类 4、 抽象类的特殊形式:没有抽象方法的类和所有方法都是抽象方法的类 5、 子类一旦继承抽象类,一定要实现该抽象类的抽象方法 抽象类的特殊形式: 1、 抽象类中所有的方法都是普通方法: 用于:父类本身不适合直接创建对象的情况 2、 抽象类中所有的方法都是抽象方法:(接口) 用于:定义规范或者标准 如果抽象类中都是抽象方法,这种特殊形式实际上就是接口 二 、接口中所有的方法默认都是 public abstract XXXX 类型,所以抽象类中如果所有的方法都是抽象方法实际上该抽象类就是接口形式了。 接口:使用关键字 interface 定义接口,接口中只有方法声明,没有方法实现,因为接口中所有的方法默认的修饰都是 public abstract ,接口中的方法由实现该接口的类去实现。 接口中所有的变量都是常量,在接口中声明变量默认修饰符是 public static final Int num = 10; 接口不能直接 new ,应该创建接口实现类的实例

字节输入流和字节输出流

家住魔仙堡 提交于 2019-12-31 04:33:42
字节输入流:InputStream属于抽象类,用其子类FileInputStream进行实例化。(先定义字节数组,实例化输入流对象,读取文件内容到字节数组中,再输出) 第一种方式: package 字节流; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class InputStreamDemo01 { public static void main(String[] args) throws IOException{ File f=new File("f:"+File.separator+"File"+File.separator+"字节流.txt"); InputStream in=new FileInputStream(f);//字节流实例化 byte[] b=new byte[(int)f.length()];//新建一个字节数组,长度正好是文件的长度 in.read(b);//读取文件中的内容存储在字节数组中 in.close();//关闭输入流 System.out.println("长度:"+f.length());//输出文件的长度 System.out.println("内容为:"

设计模式与代码的结构特性

倖福魔咒の 提交于 2019-12-31 01:04:23
适配器模式 适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式 在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。 根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系。 角色 Target (目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。 Adapte r(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。 Adaptee (适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码 举例:定义一个手机充电的适配器 首先,定义一部手机 其次,定义手机充电的接口(相当于target) 再次,定义一个家用交流电220V电压(相当于adaptee)

设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。

风流意气都作罢 提交于 2019-12-30 23:15:34
(1)【抽象类方法】public abstract class Shape { public abstract double area(); public abstract double perimeter(); } 【圆继承方法】public class Circle extends Shape {//圆面积 private double diameter; public double getDiameter() { return diameter; } public void setDiameter(double diameter) { this.diameter = diameter; } @Override public double area() { return Math.PI * Math.pow(getDiameter() / 2, 2); } @Override public double perimeter() { return Math.PI * getDiameter(); } } 【矩形继承】public class Rectangle extends Shape {//矩形周长 private double length; private double width; public double getLength() { return length; }

创建一个抽象类动物类以及以下几个接口:进食的接口、睡觉的接口、思考的接口、说话的接口。分别定义猫类、人类、鸟类继承动物类并选择实现上述的接口,并创建实例验证。

白昼怎懂夜的黑 提交于 2019-12-30 23:12:14
interface Animal{ void breathe(); void eat(); void sleep(); } class Cat implements Animal{ @Override public void breathe() { System.out.println("一直在呼吸..."); } @Override public void eat() { System.out.println("就知道吃吃吃!"); } @Override public void sleep() { System.out.println("一天天的就知道睡!"); } } interface Bird extends Animal{ void fly(); } interface Human extends Animal{ void speak(); void think(); } class bird implements Bird{ @Override public void fly() { System.out.println("鸟的优点就是能上天吧"); } @Override public void breathe() { } @Override public void eat() { } @Override public void sleep() { } }

多态,抽象类和抽象方法,接口

佐手、 提交于 2019-12-30 05:36:05
多态:   继承,重写后,基类引用指向子类对象。   调用基类被重写的方法时,实际new的是哪个子类对象,调用哪个子类对象方法。   多态是执行期间(非编译)判断所引用的对象的实际类型。   提升可扩展性。   使用举例:      方法传入基类对象(接口对象)作为形参,实际调用时,如果传入的是子类对象(实现接口的对象),则调用形参成员时,调用的是实际参数,即子类对象(实现接口的对象)的成员。 抽象类和抽象方法:   抽象方法只需声明,不用实现。   public abstract void a();   抽象方法用来被子类重写,且子类必须重写,否则子类要声明为抽象类。   有抽象方法的类即为抽象类且必须声明为抽象类。   抽象类只能被继承,不能实例化。 接口:   public interface A{     public static final int i = 1;     public void B();   }   接口可以多重实现。   接口是抽象方法和常量值的集合。   接口是特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现。   变量默认且必须public static且final。   方法默认且必须public abstract。   接口解决了“多继承”时,子类对象包含的多个父类对象成员重名问题,成员属于接口,不属于实现接口的对象。  

java基础-接口

我与影子孤独终老i 提交于 2019-12-30 05:35:30
一.接口的定义(接口interface)   接口是抽象方法和常量值的定义的集合。其实接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。    接口(interface)是一种特殊的抽象类, 在这种抽象类里面,所有的 方法都是抽象方法 ,并且这个抽象类的属性(即成员变量)都是声明成“ public static final 类型 属性名”这样的,默认也是声明成 “public static fina l”即里面的成员变量都是公共的、静态的,不能改变的。因此在接口里面声明常量的时候,可以写成“public static final 类型 常量名=value(值)”这样的形式,也可以直接写成“类型 常量名=value(值)”如:“public static final int id=10”可以直接写成“int id=10”这样的形式,因为在接口里面默认的属性声明都是“public static final”的,因此“public static final”可以省略不写。在接口里面声明的抽象方法可以不写abstract关键字来标识,因为 接口里面所有的方法都是抽象的 ,因此这个“abstract”关键字默认都是省略掉的,如在一个接口里面声明这样的三个方法:“public void start()”、“public void run()”、“public