您的位置:首页 > 编程语言 > Java开发

Java基础笔记-抽象,继承,多态

2015-05-19 17:28 381 查看
抽象类: abstract修饰

抽象方法必须定义在抽象类中,抽象类不能创建对象.

在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象.

特点是:

1.定义在抽象类中

2.方法和类都用abstract修饰,在抽象类中的方法不写abstract也默认的是抽象方法.

3.不能用new来创建对象,调用抽象方法没意义.

4.抽象类中的方法被使用,必须由子类覆写其所有的抽象方法后,才能建立子类对象进行调用.

 如果子类只覆盖了部分的抽象方法.那么该子类还是一个抽象类.

5.抽象类不可以被实例化.

继承:(extends)

关键字:extends,一般用于类与类之间的所属关系.java中是单继承,多实现(implements).

让类与类之间产生关系,从而才有了多态的特性.

当两个类有了继承关系以后.就可以在子类中调用父类的方法和属性,一般使用 super 关键字.

其用法和this关键字类似.super调用的是父类的,而this是调用的方法本身的.

/*
练习:
基础班学生:学习,睡觉.
高级班学生:学习,睡觉.
*/
abstract class Student
{
public abstract void study();
public void sleep()
{
System.out.println("躺着睡.");
}

}

class DoStudent
{
public void doSomething(Student stu)
{
stu.study();
stu.sleep();
}
}

class BaseStudent extends Student
{
public void study()
{
System.out.println("base study");
}
public void sleep()
{
System.out.println("站着睡");
}
}

class AdvStudent extends Student
{
public void study()
{
System.out.println("adv study");
}
}

class DuoTaiTest
{
public static void main(String args[])
{
/*
BaseStudent bs = new BaseStudent();
bs.study();
bs.sleep();
AdvStudent as = new AdvStudent();
as.study();
as.sleep();
*/
DoStudent ds = new DoStudent();
ds.doSomething(new BaseStudent());
ds.doSomething(new AdvStudent());
}
}


View Code
多态中成员的特点:
1.成员函数的特点; 在编译时,参阅引用型变量所属的类中是否有调用方法,有的话编译会通过,没有的话会编译失败

         在运行时,参阅对象所属的类中属否有调用方法.

面试中可能遇见的问题.问调用显示结果.

   成员函数(非静态的)在多态调用时,编译看左边,运行看右边.

   静态函数,无论编译还是运行,都看左边

看了一下之前写的那篇笔记,感觉都没什么能写的了,不知道写些什么,越往后学感觉都是得理解的,越学越难的说,最近又没什么状态,只好慢慢来,慢慢学习了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: