高级类特性

  1. super关键字:调用父类的属性方法及构造方法。当子类与父类中有重名的属性,用super显式的调用父类的属性。或者当子类重写了父类的方法的话,用super所显示的调用父类的方法。或者通过super(形参列表)来显式的调用父类中指定的构造器(在构造器内部,super(形参列表)必须要声明在首行,所以this与super不能同时出现在构造器内部),不写super的话,默认调用的是父类的空参构造器。建议设计一个类时尽量提供一个空参构造器。
  2. 子类对象实例化的全过程:创建任何对象都要调用object父类。一级一级的往上调用。
    public class Class extends father{
    	public static void main(String[] args) {
    		eat();
    		father a =new father();
    		System.out.println(a.toString());//说明每个类都是调用过object类的构造方法的。
    	}
    }
    class father{
    	private int i=10;
    	public static void eat() {
    		System.out.println("hello");
    	}
    }
    3.多态:可以理解为一个事物的多种表现形态。具体表现例如:方法的重载和重写,子类对象的多态性。
    Person p=new Man();//父类引用指向男性对象,实际执行的是子类重写父类的方法

    4. 多态使用的前提:继承+重写。

5.程序运行分为编译和运行,前者看左边,运行看右边。

6.向上转型和向下转型(类似于数据类型的转换):

Person p1=new Woman();//change top
Woman w=(Woman)p1;//change under
w.shopping();//the unique method of woman

7.instanceof 判断该引用是哪个类(判断是否可以进行转型):

if(p1 instanceof Man){
    Man m = (Man) p1;
}
if(p1 instanceof Person){
    syso;
}//子类的对象一定也是父类的对象

8.封装的作用:设定修饰符限制属性及方法的内外部调用。

继承的作用:写好的类等能够直接拿过来用。

多态的作用:如果一个方法的形式参数是preson类型的引用,有了多态之后,那么这个方法也能对man和woman的对象使用。

9.举个例子:

package object;
public class Class{
	public static void main(String[] args) {
		Animal b=new Animal();
		test(b);
		test(new Dog());//向上转型
	}
	public static void test(Animal a){
		a.move();
		if(a instanceof Dog)//很神奇吧。instanceof看的好像是右边的对象部分。
			((Dog)a).own();//向下转型
	}
}
class Animal{
	public void move() {
		System.out.println("动物");
	}
}
class Dog extends Animal{
	Dog(){
		super();
	}
	void own() {
		System.out.println("狗");
	}
}

10.多态只适用于方法,属性不可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值