黑马程序员-笔记-04-基础
来源:互联网 发布:淘宝卖家体验中心 编辑:程序博客网 时间:2024/06/05 23:54
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
java的特性之多态:
多态提高了代码的复用性,提高了程序的扩展性。
多态的实现:
1.存在继承
2.存在方法重写
3.使用父类引用指向子类对象。
多态的局限性:
使用了父类的引用,所以只能调用父类的方法。
多态中:成员函数的特点。
1.编译时,参考,引用变量所属类是否有该方法。
2运行时,参考实现类(实例对象)所有的方法。
多太重成员变量与静态方法的特点:
全部参考参考变量所属的类。
java的内部类:
现实理解:事物中可能包含其他食物,这些组成事物需要其他外部事物的支持。
java中内部类可以做成员变量或者局部变量,具体情况,列于下面的程序中。
内部类做局部变量。内部变量是没有修饰符的。如果内部类做局部变量要访问其他局部变量,那么其他局部变量不需使用final修饰。
成员内部类依然可以访问外部类的成员变量。
public class Play08 {public static void main(String[] args) {Outer1 out1 = new Outer1();out1.getIn();//外部其他类中,直接建立内部类的书写格式,内部类不许是private修饰符。Outer1.Inner1 in1 = new Outer1().new Inner1();in1.getX();//外部类其他类中建立,静态内部类的格式。Outer1.Inner3 in2 = new Outer1.Inner3();in2.getJ();}}class Outer1{private int i = -1;private static int j = -9;//内部类可以直接访问外部类的成员变量。 class Inner1{ //非静态内部类中不能有静态量。//public static int k = 0; int i =100;public void getX(){//内部类中其实有一个外部类的实例。System.out.println("Outer i"+Outer1.this.i);//此处的Outer1.this可以省略。System.out.println("Inner i"+i);new Inner3();}} //内部类可以是private修饰符,此时不能在外部其他类建立该内部类。 private class Inner2{} //内部类被static修饰,此时这个内部类只能访问外部类的静态量。 static class Inner3{public static void getJ(){System.out.println(j);} }public void getIn(){//外部类访问内部类,建立内部类的实力。Inner1 in = new Inner1();in.getX();}public static void getIn2(){//外部静态方法,要访问内部类,内部类必须为静态。Inner3 in3 = new Inner3();in3.getJ();Inner3.getJ();//Inner1 in1 = new Inner1();}}
java抽象类:abstract 当多个类中出现相同功能,但是功能主体不同,这时可以进进向上抽取。这时只抽取功能定义,而不抽取功能主体。抽象就是笼统的,不具体的,看不懂的。
特点:
1.抽象方法一定在抽象类中。(还有接口。)
2.抽象方法和抽象类都必须被abstract关键字修饰。
3.抽象类不可以用new创建对象,因为调用抽象方法没意义。但是抽象类依然会有构造方法。
4.抽象类中的抽象方法要被使用,必须由子类复写齐所有的抽象方法后,建立子类对象调用。
5.如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。也就是说,有抽象方法的类,必然是抽象类。
6.抽象类中可以不定义抽象方法,虽然这样可能丧失了抽象的作用,但这样是是不让该类建立对象。
java接口: interface
java支持单继承类,多实现接口。implements
接口中成员的特点:
1. 接口中没有变量:全部是常量。使用public static final修饰。
2.接口中的所有的方法中全部是抽象的,使用public abstract修饰。
接口的特点:多继承、他是一个对外暴露的规则。增强了程序的扩展性。降低了程序的耦合性。 接口与接口是继承关系。
通常情况下:需要将基本的功能定义在各个实现类中, 扩展方法和公共的则放在接口中。
接口是没有构造函数的:因为它内部根本就没有变量需要初始化,他的变量全部由final修饰为常量。
从这个方面说,所以抽象类是依然有构造函数的,他虽然不能直接new,但是他的实现类,依然需要使用它的构造函数对他内部变量进行初始化。
- 黑马程序员-笔记-04-基础
- 黑马程序员_java基础笔记(04)...多线程
- 黑马程序员----java基础笔记
- 黑马程序员-笔记-01-基础
- 黑马程序员-笔记-02-基础
- 黑马程序员-笔记-03-基础
- 黑马程序员-笔记-05-基础
- 黑马程序员 Java基础笔记
- 黑马程序员-笔记--高新技术基础
- 黑马程序员---基础笔记1
- 黑马程序员_java基础学习笔记04_面向对象
- 黑马程序员--编程基础学习笔记一
- 黑马程序员--编程基础学习笔记二
- 黑马程序员--编程基础学习笔记三
- 黑马程序员--编程基础学习笔记四
- 黑马程序员--编程基础学习笔记五
- 黑马程序员----C#基础自学笔记
- 黑马程序员__java基础笔记1
- Linux下在内存映射文件中给计数器持续加1
- 添加到开机自动运行
- s2sh整合中hibernate两种配置方式中spring配置文件中的不同
- 判断该路径是文件还是文件夹
- ios UITableView封装之下拉-上提-图片异步加载
- 黑马程序员-笔记-04-基础
- 黑马程序员-笔记-05-基础
- 匈牙利命名法的那些破事~~
- (十二)命令模式详解(故事版)
- Struts2的模型驱动、属性驱动的理解
- oracle维护表空间和数据文件
- 期末编程
- Struts2(4):Action访问Servlet API---ActionContext
- 清理内存