首先,要判断是否使用抽象类,可以从下面两个方面进行判断: 1.是不是需要被实例化 2.父类中有没有默认的实现 如果不需要被实例化,父类中没有默认的实现,则用抽象类(否则用虚方法来实现) 下面举个简单的例子: namespace 抽象类实现多态案例 { class Program { static void Main(string[] args) { //Student s = new Student(); Person p = new Student(); p.SayHi(); p.Standu…
一.面向对象最核心的机制--动态绑定,也叫多态 1.1.通过下面的例子理解动态绑定,即多态 package javastudy.summary; class Animal { /** * 声明一个私有的成员变量name. */ private String name; /** * 在Animal类自定义的构造方法 * @param name */ Animal(String name) { this.name = name; } /** * 在Animal类里面自定义一个方法enjoy */ p…
final关键字 被其修饰的类,不能被继承. 被其修饰的方法,不能被覆盖. 被其修饰的变量,是一个常量,不能被修改,所以定义时必须初始化(和C++的const类似). 一般有final,会搭配static使用.如final static double PI = 3.14; 常量的命名规则 --> 所有字母大写,多个单词,中间用下划线连接. 抽象类 猫和狗有共性,将共性抽取出来,放入Animal中,Animal是抽象的(想象不出实体是什么). public abstract class Anima…
首先了解一下什么是接口: 1.接口就是一种规范,协议,约定好遵守某种规范就可以写通用的代码 2.定义了一组具有各种功能的方法(只是一种能力,没有具体实现,像抽象方法一样,“关说不做”) 接口存在的意义:多态. 1.多态的意义:程序可扩展性,最终让程序变得更灵活,节省成本,提高效率 2.接口解决了类的多继承问题,同时解决了类继承以后体积庞大的问题 3.从语法的角度来看,接口与抽象类类似 接口的特点总结: 1.接口是一种规范,为了实现多态 2.接口不能被实例化 3.接口中的成员不能加“访问修饰符”,…
以前字符串的拼接基本都是用string来完成的,从来没有考虑过性能或者速度的问题,自从学习了StringBuilder之后才发现两者的差距有多大,当然,数据量比较小的时候,用string还是挺方便的,但是数据量大的时候弊端就显现出来了. namespace StringBuilder的使用 { class Program { static void Main(string[] args) { //Console.WriteLine("Hello World!"); #region 使用…
一.抽象类 没有方法主体的方法称为抽象方法,包含抽象方法的类就是抽象类. Java中使用 abstract 关键字修饰方法和类,抽象方法只有一个方法名,没有方法体. public abstract class TestAbstract { //抽象类 public abstract void run();//抽象方法 } 如果一个类继承了抽象类,那么该类必须重写父类的所有抽象方法,否则该类也必须声明抽象类. 抽象类不能创建对象,只能由其子类创建. 抽象类可以拥有构造方法,是用来给子类创建对象时,…
params可变参数: 1.无论方法有几个参数,可变参数必须出现再参数列表的最后,可以为可变参数直接传递一个对应类型的数组: 2.可变参数可以传递参数也可以不传递参数,如果不传递参数,则数组为一个长度为0的数组 3.可变参数可以直接传递一个数组进来 static void Test(string msg,params int[] args) { //如果可变参数传值为null时,需要加上判断 if (args != null) { } } ref关键字: 1.参数再传递之前必须赋值,再方法钟可以…
https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态…
java基础学习总结——抽象类 抽象类介绍…
抽象类不能用来实例化对象 1.抽象类中可以有实例成员,也可以有抽象成员 2.抽象成员不能有任何实现 3.抽象类.抽象成员必须包含在抽象类中 4.抽象类不能用来实例化对象,既然抽象类不能被实例化,那么抽象类的作用就是用来被继承的,继承的主要目的就是用来实现多态 5.抽象成员子类继承以后必须“重写”,override,除非子类也是个抽象类 namespace 抽象类实现多态案例 { class Class1 { static void Main(string[] args) { //例子一 Anim…