三、JAVA基础-类、继承

面向对象三大特性:封装、继承、多态
 
1.类的定义
类是对一类事务的特性和行为的抽象
 
2.如何创建类
class MyClass {
/* attributes */
/* constructors */
/* methods */
}
 
3.如何声明类的属性和方法
 
class Student {
/* attributes */
int age;
int sex;
 
/* constructors */
/* methods */
void doSomething(){
}
}
 
4.如何定义类成员的可见性
 
public--都可访问(公有)
protected--包内和子类可访问(保护)
不写(default)--包内可访问 (默认)
private--类内可访问(私有)
 
5.如何定类的构造函数
无参数构造函数
class Student{
/* attributes */
/* constructors */
public Student() {
/* dosomething */
}
/* methods */
}
带参数构造函数
class Student{
/* attributes */
/* constructors */
public Student(int age, int sex) {
/* dosomething */
}
/* methods */
}
 
6.源程序的布局
/**
* test
*/
package com.ly.csc.demo;
 
import java.util.Date;
 
public class TestClass{
public TestClass(){
}
private Date currentDate;
}
 
 
 
7.为什么要继承,什么是继承
extends 表示继承 ,所有类都隐式继承Object类
1.子类继承父类的成员变量
  当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:
  1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
  2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
  3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。
  2.子类继承父类的方法
  同样地,子类也并不是完全继承父类的所有方法。
  1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
  2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
  3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。
3.构造器
  子类是不能够继承父类的构造器,但如果父类的构造器都是带有参数的,则必须在子类的构造器中显示地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类有无参构造器,则在子类的构造器中用super关键字调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
 
 
 
8.单级继承,多级继承
Class A {}
Class B extends A {}
Class C extends B {}
 
 
9.多态
多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
可以理解为一个引用(类型)在不同的情况下的多种状态。也可以理解为,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.
 
多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
 
 
java中,除了继承,还有其他实现多态的方式吗?
接口,抽象类
posted @ 2018-08-15 16:31  码上开车  阅读(112)  评论(0编辑  收藏  举报