Java面向对象_抽象类、接口】的更多相关文章

一.抽象类 概   念:很多具有相同特征和行为的对象可以抽象为一个类:很多具有相同特征和行为的类可以抽象为一个抽象类 关键字:abstract 规   则:1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 2.非抽象类继承抽象类必须实现所有抽象方法 3.抽象类可以有方法和属性 4.抽象类不能被实例化 5.抽象类不能声明为final(用final声明的类不能被继承,而抽象类就是要被别的类继承) public class Practice14 { public static void main…
一.抽象类 1.抽象方法:由abstract修饰.只有定义没有方法体.用一个分号结尾. 2.抽象类: 1)包含抽象方法的类必须是抽象类 2)由abstract修饰 3)不能被实例化 4)抽象类如果不被继承,就没有什么意义:一个类继承抽象类,必须重写起抽象方法(除非该类也声明为抽象类) abstract class Shape{ //声明抽象类 private double c; public Shape(double c){ this.c = c; } public abstract doubl…
概念:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤. 去个例子分析一下这个概念: public class Practice14 { public static void main(String[] args) { // TODO Auto-generated method stub //用父类的引用指向子类对象 Games g=new Boy(); g.play(); } } //男孩类 clas…
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法. 父类抽取出了共性的内容,子类可以在父类基础上扩展新的属性与方法. 子类拥有父类的所有属性与方法,无需重新定义.并且可以直接使用非私有的父类成员. 1.1 -子类中访问父类成员方法特点 l 子父类中成员方法的特点 当在程…
Java面向对象作业-用接口方式测试向下转型 根据视频的里实例 我们直接修改Test2测试方法: package com.java1234.chap03.sec13; public class Test2 { public static void main(String[] args) { People p1=new Student(); p1.say(); Student student=(Student) p1; student.say(); Teacher teacher=(Teacher…
Java面向对象之类.接口.多态 类 class Person { // 实例属性 int age; String name; // 类属性 static int v = 1; // 构造器 public Person() {} // 构造器重载 public Person(int age, String name) { this.age = age; this.name = name; } // 实例方法 public void tell_age() { System.out.println(…
接口定义 接口就是多个类的公共规范 接口是一种引用数据类型, 最重要的内容是其中的抽象方法 定义格式: public interface MyInterfaceAbstract { // 这是一个抽象方法(public abstract 可省略) public abstract void methodAbs(); } 如果是java 7,那么接口中可以包含:常量.抽象方法 如果是java 8,还可以包含:默认方法.静态方法 如果是java 9,还可以额外包含:私有方法 使用接口 接口不能直接使用…
在开始写抽象类之前,有一个问题我觉得想清楚会对理解抽象类很有帮助:那就是为什么要设计抽象类? 难道用类还不够么,为什么要设计出抽象类这样一个东西.我们可以换个角度来理解,就是有些类本来就是不应该被实例化的. 可以举个例子:比如我们定义了一个所有动物的父类Animal,但是现实之中并没有Animal这种对象阿,所以从这个角度来看Animal其实不应该被初始化. 然后我们想通过一个方法来防止类似Animal这种类被实例化,即让这个类不能够被new()出来. 那么可以通过标记类为抽象类就可以很好的解决…
抽象类是从多个类中抽象出来的模板,如果将这种抽象进行得更加彻底,则可以提炼出一种更加特殊的"抽象类"-接口(interface),Java9对接口进行了改进,允许在接口中定义默认方法和类方法,默认方法和类方法都可以提供方法实现,Java9为接口增加了一种私有方法,私有方法也可提供方法实现 接口是从多个相似类中抽象出来的规范,接口不提供任何实现,接口体现的是规范和实现分离的设计哲学. 接口定义的是多个类共同的公共行为规范,这些行为是与外部交流的通道,这就意味着接口里通常是定义一组公用方法…
Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我们的现实世界都是由各种各样的对象组成,大到飞机.火车.楼房,小到一只狗.笔记本电脑.一本书都是实实在在的对象.然而每个对象都有自己的状态和行为,我们可以通过对象来完成一定的任务. 例如:我们乘坐飞机从深圳飞到湘西去旅游,我们可以直接使用飞机的飞行能力,而不用管飞机这个对象是如何制造的.直接使用即可.…
参考并摘自:http://www.runoob.com/java/java-abstraction.html Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的. 如果一个类中没有包含足够的信息来描绘一个对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其他功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是这个原因,通常在设计阶段决定要不要设…
java接口 interface,是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念.类描述对象的属性和方法.接口则包含类要实现的方法. 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法. 接口与类相似点: 一个接口可以有多个方法. 接口文件保存在.java结尾的文件中,文件名使用接口名. 接口的字节码文件保存在.class结尾的文件中. 接口相应的字节…
抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法 抽象方法: 声明而未被实现的方法 抽象类不能被实例化 子类实现不了, 由下一级子类去实现, 当前类声明为抽象类, 继承的这个方法声明为抽象方法 抽象方法的权限修饰符必须为public abstract //人类 public class Person { private String name; //自定义属性 引用类型 宠物…
概念:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化. 接口抽象的就是某种方法. OO设计原则:1.面向接口编程  2.封装变化  3.多用组合,少用继承 public class Practice14 { public static void main(String[] args) { // TODO Auto-generated method stub //用父类的引用指向子类对象 Bird d=new BigBird("小白&qu…
抽象类和抽象方法 什么是抽象类? 使用 abstract 修饰的类称为抽象类 public abstract class Person { } 抽象类的特征 1) 抽象类不可以创建对象 2) 抽象类可以有构造方法 public abstract class Person{ public Person(){ System.out.println("Person类中的无参构造方法"); } } 抽象类中构造方法的作用,是提供给子类调用的. package com.bjsxt.abstrac…
多态: /* 多态(polymorphic)概述 * 事物存在的多种形态 多态前提 * a:要有继承关系. * b:要有方法重写. * c:要有父类引用指向子类对象. * 成员变量 * 编译看左边(父类),运行看左边(父类). * 成员方法 * 编译看左边(父类),运行看右边(子类).动态绑定 * 静态方法 * 编译看左边(父类),运行看左边(父类). * (静态和类相关,算不上重写,所以,访问还是左边的) * 只有非静态的成员方法,编译看左边,运行看右边 */ class Demo_Polym…
抽象类和抽象方法 抽象类和抽象方法必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法 抽象类和抽象方法的规则如下 1.抽象类和抽象方法必须要用abstract来修饰,抽象方法里可以没有方法体. 2.抽象类不能实例化,无法使用new关键字来调用构造器创建抽象类的实例. 3.抽象类可以包含成员变量,方法(普通方法和抽象方法都可以),构造器,初始化块,内部类(接口,枚举)5种成分,抽象类的构造器不能用与创建实例,主要用于被其子类调用. 4.含有抽象方法的类…
抽象类  package oop.demon01.demon08; ​ //abstract 抽象类: 类 extends: 类---单继承   (接口可以多继承) public abstract class Action {          //约束~有人帮我们实现该方法~     //abstract ,抽象方法,只有方法名字,没有方法的实现!     public abstract void doSomething();     /* 抽象类特点:     1. 不能new这个抽象类,只…
java语言,声明类时格式为: abstract class Db{} 说明Db类为抽象类.抽象方法是说没有方法的实现(方法体)此方法为抽象方法,只有抽象类和接口中才可以有抽象方法.简而言之,含有抽象方法的类一定是抽象类:关键字是abstract 抽象类本质 1.从类的组成上看其是抽象方法和非抽象方法的集合,还有属性(常量). 2.从设计的角度来看,实际上抽象类定义了一套规范(抽象方法).(规范) 使用规则 抽象类必须被继承,抽象方法必须被重写. 抽象类中的抽象方法只需声明,无需实现,没有方法体…
instanceof 对象名 instanceof 类名 该对象是否属于该类 Animal animal = new Dog(); if(animal instanceof Dog){ Dog d = (Dog)animal; } 多态 Animal animal = new Dog(); animal.sleep();//先调用子方法,如果子方法未重写(复写),则执行父类中的该方法 抽象类 子类继承父类,父类是个抽象类,子类必须实现父类中的抽象方法,如果不想实现,可以将子类定义为抽象类,让下一…
内容: 1.抽象类的产生 2.抽象类和抽象方法的定义与使用 3.抽象类和抽象方法的注意事项 4.实例分析 1.抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法. 比如一个图形类应该有一个求周长的方法,但是不同的图形求周长的算法不一样.那该怎么办呢? 再比如:动物应该有吃饭的方法,猫,狗,猪.... 那么在他们的父类中 这个…
一.多态 分类:方法的重载与重写:对象的多态性 对象的多态性:向上转型:将子类实例转为父类实例   格式:父类 父类对象=子类实例;是自动转换 向下转型:将父类实例转为子类实例   格式:子类 子类对象=(子类)父类实例;是强制转换 小结:方法的重载与重写就是方法多态性表现:多个子类就是父类中的多种形态:父类引用可以指向子类对象,自动转换:子类对象指向父类引用需要强制转换:在实际开发中尽量使用父类引用(更利于扩展) 父类设计法则:父类通常情况下都设计为抽象类或接口,其中优先考虑接口,如接口不能满…
一.继承的基本概念: 1.继承是面向对象三大特征之一 2.被继承的类成为父类(超类),继承父类的类成为子类(派生类) 3.继承是指一个对象直接使用另一个对象的属性和方法 4.通过继承可以实现代码重用 举个例子: public class Practice14 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Dog dog=new Dog("花花&q…
概念:对两个或多个数据项进行比较,以确定他们是否相等,或确定他们之间的大小关系及排列顺序成为比较. 1.Comparable接口: 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法. public class ComparableDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method…
Data类 类Data表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间 Data data=new Data();//实例化Data对象,表示当前时间 Calendar类 日历类,使用此类可以将时间精确到毫秒显示. //两种实例化方式 Calendar c=Calendar.getInstance();//Calendar类是抽象类,不能直接new Calendar c=new GregorianCalendar(); DateFormat类及子类SimpleDateFormat 例: i…
在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5以后引入了八种基本数据类型的包装类. 八种包装类分为两大类型: Number:Integer.Short.Long.Double.Float.Byte都是Number的子类表示一个数字. Object:Character.Boolean都是Object的直接子类. public class Test5 { /…
多态图解 代码中体现多态性 父类名称 对象名 = new 子类名称(); or 接口名称 对象名 = new 实现类名称(); // 父类 public class Father { public void method(){ System.out.println("parent class method call"); } public void methodFather(){ System.out.println("parent class specific method…
继承 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待,例如:父类是员工,子类是程序员,那么程序员就是一个员工,代码示例: // 员工类 public class Employee{ String name; int age; } // 程序员类(继承员工类) public class Programer extends Employee{ } // 主方法 public class Extends { public static void main(String[] args…
抽象类 通过abstract定义的方法是抽象方法,它只有定义,没有实现.抽象方法定义了子类必须实现的接口规范: 定义了抽象方法的class必须被定义为抽象类,从抽象类继承的子类必须实现抽象方法: 如果不实现抽象方法,则该子类仍是一个抽象类: 面向抽象编程使得调用者只关心抽象方法的定义,不关心子类的具体实现. 如果父类的方法本身不需要实现任何功能 ,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法.声明关键词abstract abstract class Pers…
/** * 抽象类:很多具有相同特征和行为的类可以抽象为一个抽象类 * 1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类 * 2.非抽象类继承抽象类必须实现抽象方法[可以是空实现] * 3.抽象类可以有方法和属性 * 4.抽象类不能被实例化 * 5.抽象类不能声明为final * 6.抽象类可以有构造方法[不代表实例化对象] */ public class Main { public static void main(String[] args) { Goddess m1 = new Go…