- class BaseClass
- {
- public int book = 6;
- public void base()
- {
- System.out.println("父类的普通方法");
- }
- public void test()
- {
- System.out.println("父类的被覆盖的方法");
- }
- }
- public class SubClass extends Basclass
- {
- public String book = "我的学习笔记"; //覆盖父类的book
- public void test()
- {
- System.out.println("子类的覆盖父类的方法");
- }
- public static sub()
- {
- System.out.println("子类的普通方法");
- }
- public static void main(String[] args)
- {
- BaseClass bc = new BaseClass(); //不存在多态
- System.out.println(bc.book); //输出6
- bc.base();
- bc.test(); //执行父类中的方法
- SubClass sc = new SubClass(); //不存在多态
- System.out.println(sc.book); //输出我的学习笔记
- sc.base();
- sc.test();
- BaseClass PloymorphicBc = newSubClass(); //多态发生
- System.out.println(PloymorphicBc.book); //这里输出6,对象的变量不具备多态性
- PloymorphicBc.base(); //执行从父类继承到的方法
- PloymorphicBc.test(); //执行子类中的方法
- }
- }
包装类
1、基本数据类型包装类
2、理解final修饰符java中共有8种基本数据类型,因为它们的变量不能当成Object类型的变量所以java提供了包装类概念,为它们分别定义了引用类型。
对应关系:除int对应Integer类,char对应character类之外其他的都是基本类型的第一个字母大写。
final成员变量:变量一旦有了初始值就不能被重新赋值,如果没有在定义和初始化块或构造器中为其赋值,那么该变量将一直是系统分配的默认值而失去意义。
final局部变量:局部变量也必须由程序员显式初始化,但是和系统不会对局部变量初始化,所以可以在定义时指定值也可以不指定默认值,可以在后面的代码中再指定值,但是只能指定一次。java语法规定:final成员变量必须由程序员显式指定初始值
final修饰基本类型变量和引用类型变量的主要区别:
内部类修饰基本类型变量时,不能对基本类型变量重新赋值,但对于引用变量它保存的只是一个引用final只保证引用的地址不变,而其指向的对象是可以被改变的
final方法:final方法不可以被重写
final类:final类不可以有子类
一个类的定义放在另一个类的内部,这个类就叫做内部类。
Contents就叫做内部类,内部类了解外围类,并能与之通信。
- public class First {
- public class Contents{
- public void f(){
- System.out.println("In Class First's inner Class Contents method f()");
- }
- }
- }
如果内部类里的一个成员变量与外部类的一个成员变量同名,可以使用outherClass.this来避免冲突。
静态内部类:和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。
在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。
局部内部类:定义在一个方法甚至一个代码块之内的类,定义在方法中的内部类可以使设计多样化。
匿名内部类:只需要创建一个类的对象而且用不上它的名字时,使用匿名内部类。匿名内部类由于没有名字,所以它没有构造函数(但是如果这个匿名内部类继承了一个只含有带参数构造函数的父类,创建它的时候必须带上这些参数,并在实现的过程中使用super关键字调用相应的内容)。
抽象类和抽象方法
包含抽象方法的类只能被定义成抽象类,抽象类里也可以没有抽象方法;抽象类不能被实例化,抽象类里可以包含一般类的成员,其构造函数不能用于创建实例,主要用于被子类调用,在子类中必须完全实现父类中包含的抽象方法,否则子类也只能被定义成抽象类
抽象方法不能有方法体
主要关键字和常用方法:
final:用于修饰变量、类和方法,表示他们不可以被改变。
abstract:修饰抽象类或抽象方法;需要注意的是abstract不能修饰field、局部变量、构造器,且永远不能和final同时使用
interface:
equals:是object提供的实例方法,所有引用变量都可以调用该方法用来判断是否与其他应用变量相等。用法和==相似,但是该方法可以重写
==:如果是基本类型且是可以转换成基本数值类型的变量可以用来对比是否相等,但对于引用变量只有当他们指向同一个对象的时候才认为相等。
implements:
System.gc():
toString:一个自我描述的方法,调用该方法返回对象实现类的“类名+@+hashCode”值,该方法可以被重写。
---------------------- ASP.Net+Android+IOS开发 、 .Net培训 、期待与您交流! ----------------------