-
如果要继承父类,继承父类必须在实现接口之前;
接口的引用指向实现了接口的对象
查看全部 -
1抽象类会使用abstract关键字来修饰//,在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道子类如何实现这些方法或者说是从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性
2【使用规则】abstract定义抽象类//abstract定义抽象方法,只有声明,不需要实现【public abstract void show();没有方法体,以分号结束 】//抽象类中也可以包含普通方法,也可以没有抽象方法
3它可以作为父类,也可以由父类的引用指向子类,子类必须继承父类,子类中会自动生成父类的方法,子类只需要写出具体的方法就可以 。记得要创建一个测试类,来运行main方法
查看全部 -
多态
引用多态;
比如:
Animal obj1 = new Animal(); //父类的引用可以指向本类的对象 ;
Animal obj2 = new Dog(); //父类的引用可以指向子类的对象;
方法多态:
比如:
obj1.eat(); //调用的是父类的eat方法 。创建本类对象时,调用的方法为本类的方法;
obj2.eat(); //如果子类Dog 有重写eat() 方法,调用的就是子类重写的eat();如果没有重写eat(),则调用的是从父类继承的eat()方法。 创建子类对象时,调用的方法为子类重写的方法 或者 继承的方法;
查看全部 -
super的应用:
(1)子类的构造的过程中必须调用其父类的构造方法。
(2)如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。
(3)如果显示的调用构造方法,必须在子类的构造方法的第一行。
(4)如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
查看全部 -
final关键字
final可以修饰类,方法,属性和变量
修饰类,则该类不允许继承
修饰方法,则该方法不允许被覆盖(重写)
修饰属性,则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
查看全部 -
继承初始化顺序:
先执行父类属性初始化再执行父类构造方法
后执行子类属性初始化再执行子类构造方法
查看全部 -
方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
查看全部 -
用static修饰的内部类是静态内部类,特点是:
1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
查看全部 -
如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。
如:HelloWorld.this.name
查看全部 -
内部类可以任意访问外部类的数据,但外部类不能直接使用内部类的成员和方法;如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字
查看全部 -
可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 时并未执行静态初始化块
查看全部 -
静态方法可以直接调用同类中的静态成员和静态方法,但不可以直接调用非静态成员和非静态方法,需要通过对象来进行访问;非静态方法可以直接访问静态变量和非静态变量。
查看全部 -
类型转换:
Dog dog = new Dog();
Animal animal = dog;向上类型转换,自动类型转换
Dog dog2 = (Dog)animal; 强制类型转换存在风险
Cat cat = (Cat)animal;编译报错,dog类型不能转换cat
解决方式1:
if(animal instanceof Cat) // 判断类型是否类型一致再转换
查看全部 -
7:02 safasfad
查看全部 -
Java中的继承
1.继承的概念
继承是类与类的一种关系,是一种" is a"的关系
注:Java中的继承是单继承
2.继承的好处
子类拥有父类的所有属性和方法
实现代码的复用
3.语法规则
class 子类 extends 父类
例:class Dog extends Animal{
......
}查看全部
举报