时间长了,你容易忘记,不对,我容易忘记,@Override 是什么?是重写,覆写的意思哟。不是重载哟!!!
重载是同名不同参的方法哟
重写就是子类重写父类的某个方法,父类可以是接口,可以是抽象类,可以是普通类哟。。
继承就很常见了。
多态就是N个继承同一个普通类/抽象类/接口的子类,此时这N个类都可以认为是同一个类型。比如Food类/接口,当土豆,番茄,大米都继承Food类,那么我们就统称土豆/番茄/大米为食物。此时食物Food类可以作为参数public void test(Food food); Food类有“被吃的方法”,继承该类的食物都实现了被吃的方式,都可以被创建被调用: test(new 土豆(){"被生吃了"}), test(new 番茄(){“被油炸了”})。 大概就是这么个解释,哈哈....
Java1.8的接口将可以实现默认方法,继而可以替代抽象类哟...有时候你会发现接口和抽象类很像,某些情况下用处相同。不过有时候必须且只能用抽象类。比如BaseActivity的实现(可能需要默认实现,同时需要子类实现抽象函数,所以抽象类就有必要了).
package com.hl.classs;
public class OverrideOne {
/**
* 1 重载是必须参数不同,返回值可同可不同
* @param a
* @param b
*/
public void add(int a, int b) {
}
//public int add(int a, int b) {
//
//}
public void add(String a, int b) {
}
public void add(String a, String b) {
}
/**
* 2 重写,就是子类把基类的方法重写了,这是实现多态的必要步骤
* @author hl
*
*/
public class Parent{
public void test() {
System.out.println("Parent test");
}
}
///< 3 继承
public class Child extends Parent{
@Override
public void test() {
System.out.println("Child test");
}
}
/**
* 4 多态 - 就是继承或者实现对应的父类或者接口/或者抽象类,让其生成的对象拥有共同的父类类型以及拥有共同的属性或者操作方法,
* 具体实现由子类决定
* @author lieyun_android
*
*/
public class One extends Parent{
@Override
public void test() {
System.out.println("One test");
}
}
public class Two extends Parent{
@Override
public void test() {
System.out.println("Two test");
}
}
public interface IParent{
public void test();
}
public class Three implements IParent{
@Override
public void test() {
System.out.println("Three test");
}
}
public class Four implements IParent{
@Override
public void test() {
System.out.println("Four test");
}
}
public void test(Parent _child) {
_child.test();
}
public void test(IParent _child) {
_child.test();
}
/**
* 继承、多态、重写、重载基本了解
* @param args
*/
public static void main(String[] args) {
///< 重写
OverrideOne ovo = new OverrideOne();
OverrideOne.Child child = ovo.new Child();
child.test();
///< 多态简单测试
ovo.test(ovo.new One());
ovo.test(ovo.new Two());
ovo.test(ovo.new Three());
ovo.test(ovo.new Four());
}
}
巩固呀,补知识嘛...