/* * abstract * 抽象类与抽象方法的使用 * 1.抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类 * 2.如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类 * 3.没有抽象构造方法,也没有抽象静态方法 * 4.抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用 * */ public abstract class Base { //抽象类中可以没有抽象方法,但包含了抽象方法的类就必须被定义为抽象类 public abstract void method1(); public abstract void method2(); public void method3(){} //没有抽象的构造方法 //public abstract Base(){} //没有抽象的静态方法 //static abstract void method4(); public String var="Base"; public Base(){ System.out.println("父类的无参构造方法"); } static void method4(){ System.out.print("静态方法表示类所特有的功能,这种功能的实现不依赖于类的具体实例,也不依赖于它的子类。因此,当前类必须为静态方法提供实现"); } }
//如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类 public abstract class Sub1 extends Base { public String var="Sub1"; public void method1() { System.out.println("重写父类的method1"); } }
//否则就必须实现父类的所有抽象方法 public class Sub2 extends Base { public String var="Sub2"; public Sub2(){ System.out.println("子类的无参构造方法"); } public void method1() { System.out.println("重写父类的抽象方法method1"); } public void method2() { System.out.println("重写父类的抽象方法method2"); } }
public class Test { public static void main(String[] args) { //抽象类不允许实例化 //Base base=new Base(); //抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用 //抽象类不能被实例化,但可以创建一个引用变量,其类型是一个抽象类,指向非抽象的子类实例 Base test=new Sub2(); //method1()是普通方法,在调用时,实行动态绑定,根据test的实例类型来执行。 test.method1(); //method4()是静态方法,在调用时,实行静态绑定,根据test的引用类型来执行。 test.method4(); //成员变量(static修饰和没有static修饰的变量),在调用时,实行静态绑定,根据test的引用类型来执行。 System.out.println("\n测试:Test.var调用的是"+test.var+"的变量"); } }
相关推荐
好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...
抽象类 什么是抽象类: 类和类之间具有共同特征,讲这些共同特征...因为抽象类是天生就用来被继承的,而final修饰的类是无法被继承的,所以final和abstract无法联合使用。 抽象类是有构造方法的。 子类继承了抽象类之
PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其...
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其...
输入流 abstract class InputStream:这个抽象类是表示输入字节流的所有类的超类。 * | * FileInputStream 子类:文件字节输入流 * 1. 构造方法 * FileInputStream(String name)...
类修饰符:new在类声明时使用,public公共的,访问不受限,protected只能从其所在类和所在类的子类中进行访问,internal只有其所在类才能进行访问,private私有的,abstract抽象类,不能实例化,sealed密封类,不能...
java日常学习,关于继承和多态的知识点,还有一些抽象类abstract类和方法的使用,这些是我的个人笔记,在学习过程不懂得东西,也仅供大家参考。
复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是...接口中的所有方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰) * * 5.接口中的成员属性,只能声明常量,不能声明变量 *
7.7. 抽象类 7-24 7.8. 接口 (模板方法模式) 7-25 7.9. Object 类 7-27 7.10. 封装类 7-28 7.11. 内部类 7-29 7.11.1. 内部类的分类 7-29 7.11.2. 成员内部类 7-29 7.11.3. 局部内部类 7-30 7.11.4. 静态内部类 7-30...
properties属性类,super关键字,this操作,abstract抽象类,多态性,集合,接口…… java面试中长问到的一些问题及笔试题目,对于将要面试的人建议好好看一下。
1.软件思想UML:UML类图符号(依赖、关联、聚合、组合、泛化)、UML类符号相互之间的区别(聚合与组合、关联和聚合、关联和依赖、泛化和实现)。 2.Sping Boot:Spring Boot环境配置、Spring Boot核心配置和注解、...
关于接口的提示:接口是一种抽象数据类型,类似于定义公共抽象方法列表的类,实现该接口的任何类都必须提供这些方法。 接口还可以包括常量公共静态最终变量、默认方法和静态方法。 如果开发人员没有提供,编译器会...
使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的...
使用抽象类时,最好执行以下操作: @RegisterMapper ( AddressMapper . class) public abstract class AddressAbstractClassJdbiDao implements AddressDao { } ... public Foo { private AddressDao addressDao ...
abstract (关键字) 抽象 ['æbstrækt] access vt.访问,存取 ['ækses]'(n.入口,使用权) algorithm n.算法 ['ælgәriðm] Annotation [java] 代码注释 [ænәu'teiʃәn] anonymous adj.匿名的[ә'nɒnimәs]'...
{8.1}线程的常用属性与方法}{121}{section.8.1} {8.2}后台线程}{123}{section.8.2} {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section....
抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 结构型模式 适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) ...
3 模式结构图 4 UML类图 5 代码 6运行结果 实验三 抽象工厂模式的应用 1 实验目的 1) 掌握抽象工厂模式(Abstract Factory)的特点 2) 分析具体问题,使用抽象工厂模式进行设计。 2 实验内容和要求 麦当劳...
java7 hashmap源码 [toc] java网络编程学习 简介 用于存放学习java网络编程过程遇见的重难点笔记和相关代码 附带代码大部分是《java网络编程 ...这两个抽象方法是由 inputStream 和 outputStream 的具体子类实