-
即可向上转换,向下转换有风险
查看全部 -
多态:
引用的多态:
父类的引用既可以指向本类也可以指向子类
eg:Animal obj1=new Animal();
Animal obj2=new Dog();
方法多态:
创建本类对象时,调用的方法为本类的方法
创建子类方法时,调用的方法为子类重写的方法或继承的方法
查看全部 -
equals方法:
equals比较对象的哈希码是否一致(即对象的内存地址)
若要比较二者的属性值则要重写equals方法
查看全部 -
object类:
object类是所有类的父类,若一个类没有使用extends则默认这个类继承object类,object类中的所有方法适合所有子类
常见方法:
toString方法:
返回对象的哈希码(对象在内存中的 地址)
若要输出属性值则要重写toString方法
查看全部 -
super关键字:
在对象内部使用,代表父类对象
访问父类属性:super.属性
访问父类方法:super.方法
查看全部 -
final关键字:
final可以修饰类,方法,属性和变量。
final修饰类则该类不允许被继承
final修饰方法,则该方法不允许被重写
final修饰属性,则该属性不会进行隐式的初始化(类的初始化必须有值)
或在构造方法中赋值,二者选其一
final修饰变量,则只能赋一次值,即为常量
查看全部 -
抽象方法没有方法体,以分号结束
查看全部 -
多态(对象的多种形态):
引用多态:父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
方法多态:创建本类对象时,调用的方法为本类方法
创建子类对象时,调用的方法为子类重写的方法或者 继承的方法
查看全部 -
equals()方法:比较的是对象的引用是否指向同一块内存地址
比较值是否一致,需要重写:
查看全部 -
子类的构造过程中必须调用其父类的构造方法。
如果子类的构造方法中没有显式调用父类的构造方法,则系统默认调用父类无参的构造方法。
如果显式地调用构造方法,必须在子类的构造方法的第一行。
如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
查看全部 -
继承初始化顺序:
先父类在子类
先属性后构造方法
查看全部 -
package com.mianji;
//图形的 抽象类
public abstract class Shape { //抽象方法 周长
public abstract void chang();
//面积 。。
public abstract void mianji();
}
//矩形
public class Rectangle extends Shape {
double a; //长 宽
double b;
@Override
public void chang() {
System.out.println("矩形的周长:" + 2*(a+b));
}
@Override
public void mianji() {
System.out.println("矩形的面积:"+ a*b);
}
}
public class Circle extends Shape {
public double a; //半径
public final double pai =3.1415926;
@Override
public void chang() {
System.out.println("圆的周长:"+a*2*pai);
}
@Override
public void mianji() {
System.out.println("圆的面积: "+ a*a*pai);
}
}
public class Test1 {
public static void main(String[] args) {
Rectangle r=new Rectangle();
r.a=2.0;
r.b=3.0;
r.chang();
r.mianji();
Circle c=new Circle();
c.a=4.0;
c.chang();
c.mianji();
}
}
查看全部 -
成员变量的作用在整个类都可见
局部变量仅限于它的方法
查看全部 -
成员变量和局部变量属性
查看全部 -
在包下面再创建一个子包
查看全部
举报