1、多态性
多态性的体现
方法的重载和重写
对象的多态性
对象的多态性
向上转型:程序会自动完成
父类 父类对象 = 子类实列
向下转型:强制类型转换
子类 子类对象 = (子类)父类实列
2、instanceof关键字
在java中可以使用instanceof关键字判断一个对象到底是不是一个类的实列
3、ecplice:
快捷代码提示: Alt + /
快捷删除行 :Ctrl + D
下一行:Shift + Enter
运行:Ctrl + F11
快速移动行:Alt + 上下键
快速放大工作区:Ctrl + M
注释:Ctrl + /
4、仔细理解 抽象类 和 接口
5、异常处理:
try...catch...finally抛出异常后,在catch外面的代码还是会继续往下执行。但是try{}里的语句不再往下执行(包括当前语句若是输出也不会输出)。
注意:catch里面的异常类应从子类——>父类的顺序写,否则会报错。
try{
是可能出现异常的执行语句块
} catch (Exception e) {
出现异常时针对性的处理语句块
} finally {
try-catch的最后收尾处理,主要用于关闭连接等
}
代码:
1、
package N08;
class Parent{
public void tell1(){
System.out.println("Parent Tell1");
}
public void tell2(){
System.out.println("Parent Tell2");
}
}
class Child extends Parent{
public void tell1(){
System.out.println("child Tell1");
}
public void tell3(){
System.out.println("child Tell3");
}
}
class Child01 extends Parent{
public void tell4(){
System.out.println("child Tell4");
}
}
public class N1 {
/**多态性
* @param args
*/
public static void main(String[] args) {
//
Child ch = new Child();
//
Parent par = ch;
//向上转型
//
par.tell1();
//tell1的方法是重写的
//
par.tell2();
//
//向下转型
//
Parent par = new Child();
//
Child ch = (Child) par;
//
ch.tell1();
//
ch.tell2();
//
ch.tell3();
//
say(new Child());
//
say(new Child01());
Parent par = new Parent();
System.out.println(par instanceof Parent);
System.out.println(par instanceof Child);
Parent par1 = new Child();
System.out.println(par1 instanceof Parent);
System.out.println(par1 instanceof Child);
}
public static void say(Parent ch){
ch.tell1();
}
}
2、
package N08;
abstract class Person{
private int age;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public Person(int age){
this.age = age;
}
public abstract void want();
}
class Student extends Person{
public Student(int age) {
super(age);
}
@Override
public void want() {
System.out.println("我想要吃饭,,,," + "年龄:" + getAge());
}
}
class Worker extends Person{
public Worker(int age) {
super(age);
// TODO Auto-generated constructor stub
}
@Override
public void want() {
// TODO Auto-generated method stub
System.out.println("我想要走路,,,," + "年龄:" + getAge());
}
}
public class N2 {
/**抽象类的应用 不要去继承一个写好的类
* @param args
*/
public static void main(String[] args) {
Student st = new Student(10);
st.want();
Worker wo = new Worker(20);
wo.want();
}
}
3、
package N08;
interface USB{
void start();
void stop();
}
class C{
public static void work(USB u){
u.start();
System.out.println("工作,我来了");
u.stop();
}
}
class U implements USB{
@Override
public void start() {
// TODO Auto-generated method stub
System.out.println("U盘开始工作");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("U盘停止工作");
}
}
class Printer implements USB{
@Override
public void start() {
// TODO Auto-generated method stub
System.out.println("打印机开始工作");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("打印机停止工作");
}
}
public class N3 {
/**接口的应用
* @param args
*/
public static void main(String[] args) {
C.work(new U());
C.work(new Printer());
}
}